最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java使用FileReader讀取文件詳解

 更新時間:2023年09月13日 11:41:58   作者:喵手  
本文將為大家介紹FileReader類的基本用法,包括如何創(chuàng)建FileReader對象,如何讀取文件,以及如何關(guān)閉流,感興趣的小伙伴可以跟隨小編一起了解一下

前言

在Java編程中,經(jīng)常需要讀取文件的內(nèi)容,這時我們需要使用FileReader類。FileReader是Java IO庫中的一個用于讀取字符流的類,它繼承自InputStreamReader。

摘要

本文將介紹FileReader類的基本用法,包括如何創(chuàng)建FileReader對象,如何讀取文件,以及如何關(guān)閉流。文章將通過示例演示FileReader類的使用,在代碼中將有詳細(xì)的注釋說明,方便讀者理解。

正文

創(chuàng)建FileReader對象

在使用FileReader類讀取文件之前,我們需要先創(chuàng)建FileReader對象。創(chuàng)建FileReader對象的方法如下:

FileReader reader = new FileReader("path/to/file");

這里的"path/to/file"是文件的路徑,可以是相對路徑或絕對路徑。如果文件路徑不正確或文件不存在,將會拋出FileNotFoundException異常。

讀取文件

FileReader類提供了多種方法用于讀取文件,其中最常用的方法是read()。read()方法可以讀取一個字符。示例代碼如下:

FileReader reader = new FileReader("path/to/file");
int data = reader.read();
while (data != -1) {
    char ch = (char) data;
    System.out.print(ch);
    data = reader.read();
}

上面的代碼中,將會逐個字符讀取文件并打印出來。在讀取文件時,read()方法返回的是字符的ASCII碼。如果已經(jīng)到達(dá)文件的末尾,read()方法將會返回-1。

除了read()方法之外,F(xiàn)ileReader類還提供了其他多種方法用于讀取文件,如read(char[] cbuf)、read(char[] cbuf, int off, int len)等。這些方法可以一次性讀取多個字符。

關(guān)閉流

在使用完FileReader流之后,我們需要關(guān)閉流以釋放系統(tǒng)資源。關(guān)閉流的方法如下:

reader.close();

關(guān)閉流之后,將無法再從流中讀取數(shù)據(jù)。

讀取文件的注意事項

使用FileReader時,需要注意以下幾點:

  • 需要手動關(guān)閉FileReader對象,否則會占用過多的系統(tǒng)資源。
  • FileReader類默認(rèn)使用系統(tǒng)默認(rèn)編碼來讀取文件,如果文件的編碼格式不是默認(rèn)編碼格式,可能會導(dǎo)致讀取到的數(shù)據(jù)出現(xiàn)亂碼。
  • 如果要讀取比較大的文件,建議使用BufferedReader進(jìn)行緩存,加快讀取速度。

示例代碼

下面是一個完整的示例代碼,其中實現(xiàn)了讀取文件、關(guān)閉流等功能。

package com.example.javase.io;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.io.FileReader;
import java.io.IOException;
/**
 * @date 2023/9/12 15:57
 */
@SpringBootTest
public class FileReaderTest {
    @Test
    public void fileReaderTest() throws IOException {
        FileReader reader = null;
        reader = new FileReader("./template/hello.txt");
        int data = reader.read();
        while (data != -1) {
            char ch = (char) data;
            System.out.print(ch);
            data = reader.read();
        }
    }
}

示例代碼執(zhí)行結(jié)果如下:

讀取文件截圖如下:

方法介紹

方法描述
public FileReader(String fileName) throws FileNotFoundException創(chuàng)建FileReader對象
public int read() throws IOException讀取一個字符
public int read(char[] cbuf) throws IOException讀取多個字符到緩沖區(qū)
public int read(char[] cbuf, int off, int len) throws IOException讀取多個字符到緩沖區(qū),從指定的偏移量開始
public void close() throws IOException關(guān)閉流

測試用例

我們可以編寫一些簡單的測試用例,測試FileReader類的基本功能。

package com.example.javase.io;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.io.FileReader;
import java.io.IOException;
/**
 * @date 2023/9/12 15:57
 */
@SpringBootTest
public class FileReaderTest {
    private FileReader reader;
    @Before
    public void setUp() throws Exception {
        reader = new FileReader("./template/hello.txt");
    }
    @After
    public void tearDown() throws Exception {
        if (reader != null) {
            reader.close();
        }
    }
    @Test
    public void testRead() throws IOException {
        int data = reader.read();
        Assert.assertEquals(data, 104);
    }
    @Test
    public void testReadCharArray() throws IOException {
        char[] cbuf = new char[4];
        int len = reader.read(cbuf);
        Assert.assertEquals(len, 4);   //cbuf:[h,e,l,l]
        Assert.assertEquals(cbuf[0], 'h');
    }
    @Test
    public void testReadCharArrayOffLen() throws IOException {
        char[] cbuf = new char[4];
        int len = reader.read(cbuf, 1, 2);  //cbuf:[,h,e,]
        Assert.assertEquals(len, 2);
        Assert.assertEquals(cbuf[1], 'h');
    }
}

執(zhí)行結(jié)果如下:

全文小結(jié)

本文主要介紹了Java中的FileReader類,包括如何創(chuàng)建FileReader對象、如何讀取文件以及如何關(guān)閉流等內(nèi)容。通過示例代碼,我們可以更好地理解FileReader類的使用方法。

到此這篇關(guān)于Java使用FileReader讀取文件詳解的文章就介紹到這了,更多相關(guān)Java FileReader讀取文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyBatis實現(xiàn)獲取Oracle數(shù)據(jù)庫插入記錄的主鍵值

    MyBatis實現(xiàn)獲取Oracle數(shù)據(jù)庫插入記錄的主鍵值

    這篇文章主要為大家詳細(xì)介紹了如何利用MyBatis實現(xiàn)獲取Oracle數(shù)據(jù)庫插入記錄的主鍵值,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2025-08-08
  • Springboot MultipartFile文件上傳與下載的實現(xiàn)示例

    Springboot MultipartFile文件上傳與下載的實現(xiàn)示例

    在Spring Boot項目中,可以使用MultipartFile類來處理文件上傳和下載操作,本文就詳細(xì)介紹了如何使用,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • Mybatis中mapper.xml實現(xiàn)熱加載介紹

    Mybatis中mapper.xml實現(xiàn)熱加載介紹

    大家好,本篇文章主要講的是Mybatis中mapper.xml實現(xiàn)熱加載介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 一文詳解Java閉鎖和柵欄的實現(xiàn)

    一文詳解Java閉鎖和柵欄的實現(xiàn)

    閉鎖與柵欄是在多線程編程中的概念,因為在多線程中,我們不能控制線程的執(zhí)行狀態(tài),所以給線程加鎖,讓其按照我們的想法有秩序的執(zhí)行。本文將詳解Java閉鎖和柵欄的實現(xiàn),需要的可以參考一下
    2022-06-06
  • Java如何基于okhttp請求SSE接口流式返回詳解

    Java如何基于okhttp請求SSE接口流式返回詳解

    對于流式返回,Spring Boot提供了兩種不同的方式,下面這篇文章主要給大家介紹了關(guān)于Java如何基于okhttp請求SSE接口流式返回的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • Java集合框架之LinkedHashSet類解讀

    Java集合框架之LinkedHashSet類解讀

    這篇文章主要介紹了Java集合框架之LinkedHashSet類解讀,LinkedHashSet是HashSet的有序版本,它跨所有元素維護(hù)一個雙向鏈接的List,當(dāng)需要維護(hù)迭代順序時,就使用這個類,當(dāng)遍歷HashSet時,順序是不可預(yù)測的,需要的朋友可以參考下
    2023-09-09
  • Java信號量全解析

    Java信號量全解析

    這篇文章主要介紹了Java信號量的相關(guān)資料,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2021-01-01
  • MyBatis-Plus介紹及Spring Boot 3集成指南

    MyBatis-Plus介紹及Spring Boot 3集成指南

    本文介紹了MyBatis-Plus的基本特性及其與Spring Boot 3的集成步驟,通過使用MyBatis-Plus,開發(fā)者可以快速地搭建和開發(fā)數(shù)據(jù)訪問層,同時提高代碼質(zhì)量和開發(fā)效率,感興趣的朋友一起看看吧
    2024-05-05
  • Spring Boot Swagger2使用方法過程解析

    Spring Boot Swagger2使用方法過程解析

    這篇文章主要介紹了Spring Boot Swagger2使用方法過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • IDEA插件之彩虹括號Rainbow?Brackets使用介紹

    IDEA插件之彩虹括號Rainbow?Brackets使用介紹

    這篇文章主要為大家介紹了IDEA插件之彩虹括號Rainbow?Brackets使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03

最新評論

温泉县| 东至县| 北碚区| 大方县| 道孚县| 醴陵市| 张北县| 湘阴县| 陇西县| 青阳县| 夏邑县| 霍山县| 甘洛县| 庄浪县| 克东县| 阜阳市| 赣州市| 曲松县| 富川| 弋阳县| 梧州市| 那坡县| 调兵山市| 莱芜市| 治县。| 沅江市| 德兴市| 长春市| 八宿县| 思茅市| 丰县| 手游| 白水县| 木里| 禹州市| 云霄县| 彰化市| 扎囊县| 台州市| 沐川县| 科技|