1. 程式人生 > 其它 >|NO.Z.00077|——————————|BigDataEnd|——|Java&IO流.V04|--------------------------------------------------|Java.v04|IO流.v04|filereader類|概念使用|

|NO.Z.00077|——————————|BigDataEnd|——|Java&IO流.V04|--------------------------------------------------|Java.v04|IO流.v04|filereader類|概念使用|



[BigDataJava:Java&IO流.V04]                                                                                    [BigDataJava.核心類庫] [|章節二|IO流|filereader類的概念和使用|]








一、FileReader的概念和基本使用
### --- 基本概念

——>        java.io.FileReader類主要用於從文字檔案讀取文字資料內容。
二、常用的方法
方法宣告 功能介紹
FileReader(StringfileName)
根據引數指定的檔名構造物件
int read() 讀取單個字元的資料並返回,返回-1表示讀取到末尾
int read(char[] cbuf, intoffset, int length) 從輸入流中將最多len個字元的資料讀入一個字元陣列中,
返回讀取到的字元個數,返回-1表示讀取到末尾
int read(char[] cbuf) 從此輸入流中將最多 cbuf.length 個字元的資料讀入字元陣列中,
返回讀取到的字元個數,返回-1表示讀取到末尾
void close() 關閉流物件並釋放有關的資源
三、程式設計使用
package com.yanqi.task17;

import java.io.FileReader;
import java.io.IOException;

public class FileReaderTest {

    public static void main(String[] args) {
        FileReader fr = null;

        try {
            // 1.構造FileReader型別的物件與d:/a.txt檔案關聯
            //fr = new FileReader("d:/a.txt");
            fr = new FileReader("d:/b.txt");
            // 2.讀取資料內容並列印
            /*
            int res = fr.read();
            System.out.println("讀取到的單個字元是:" + (char)res); // 'a'
             */
            int res = 0;
            while ((res = fr.read()) != -1) {
                System.out.println("讀取到的單個字元是:" + (char)res + ",對應的編號是:" + res);
            }

            // 準備一個字元陣列來儲存讀取到的資料內容
//            char[] cArr = new char[5];
            // 期望讀滿字元陣列中的一部分空間,也就是讀取3個字元放入陣列cArr中下標從1開始的位置上
            /*int res = fr.read(cArr, 1, 3);
            System.out.println("實際讀取到的字元個數是:" + res); // 3
            for (char cv : cArr) {
                System.out.println("讀取到的單個字元是:" + (char)cv); // 啥也沒有 a e l 啥也沒有
            }*/

            // 期望讀滿整個字元陣列
            /*int res = fr.read(cArr);
            System.out.println("實際讀取到的字元個數是:" + res); // 5
            for (char cv : cArr) {
                System.out.println("讀取到的單個字元是:" + (char)cv); // a e l l h
            }*/
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 3.關閉流物件並釋放有關的資源
            if (null != fr) {
                try {
                    fr.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
四、編譯列印
D:\JAVA\jdk-11.0.2\bin\java.exe "-javaagent:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=54744:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath E:\NO.Z.10000——javaproject\NO.H.00001.javase\javase\out\production\javase com.yanqi.task17.FileReaderTest

Process finished with exit code 0








===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor



來自為知筆記(Wiz)