Java 菜鳥(niǎo)教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊(duì)列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java FileReader 類

在本教程中,我們將借助示例學(xué)習(xí)Java FileReader及其方法。

java.io包的FileReader類可用于從文件中讀取數(shù)據(jù)(以字符為單位)。

它繼承了InputSreamReader類。

FileReader是InputStreamReader的子類,而InputStreamReader是Java Reader的子類。

在學(xué)習(xí)之前FileReader,請(qǐng)確保您了解Java文件。

創(chuàng)建一個(gè)FileReader

為了創(chuàng)建一個(gè)文件閱讀器,我們必須首先導(dǎo)入java.io.FileReader包。導(dǎo)入程序包后,這里是創(chuàng)建文件閱讀器的方法。

1.使用文件名

FileReader input = new FileReader(String name);

在這里,我們創(chuàng)建了一個(gè)文件閱讀器,該文件閱讀器將鏈接到所指定的文件名。

2.使用文件的對(duì)象

FileReader input = new FileReader(File fileObj);

在這里,我們創(chuàng)建了一個(gè)文件讀取器,該文件讀取器將鏈接到文件對(duì)象所指定的文件。

在上面的示例中,文件中的數(shù)據(jù)使用某些默認(rèn)字符編碼存儲(chǔ)。

但是,由于Java 11,我們也可以在文件中指定字符編碼的類型(UTF-8UTF-16)。

FileReader input = new FileReader(String file, Charset cs);

在這里,我們使用Charset類來(lái)指定文件閱讀器的字符編碼。

FileReader的方法

FileReader類提供Reader類中存在的不同方法的實(shí)現(xiàn)。

read()方法

  • read() - 從閱讀器讀取單個(gè)字符

  • read(char[] array) - 從閱讀器讀取字符并將其存儲(chǔ)在指定的數(shù)組中

  • read(char[] array, int start, int length) - 從讀取器讀取等于length的字符數(shù),并從位置start開(kāi)始存儲(chǔ)在指定的數(shù)組中

例如,假設(shè)我們有一個(gè)名為input.txt的文件,其中包含以下內(nèi)容。

This is a line of text inside the file.

讓我們嘗試使用讀取文件FileReader。

import java.io.FileReader;

class Main {
  public static void main(String[] args) {

    //創(chuàng)建一個(gè)字符數(shù)組
    char[] array = new char[100];

    try {
      //使用FileReader創(chuàng)建閱讀器
      FileReader input = new FileReader("input.txt");

      //讀取字符
      input.read(array);
      System.out.println("Data in the file: ");
      System.out.println(array);

      // 關(guān)閉 reader
      input.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

輸出結(jié)果

Data in the file:
This is a line of text inside the file.

在上面的示例中,我們創(chuàng)建了一個(gè)名為input的文件閱讀器。文件閱讀器與文件input.txt鏈接。

FileInputStream input = new FileInputStream("input.txt");

為了從文件中讀取數(shù)據(jù),我們使用了read()方法。

getEncoding()方法

getEncoding()方法可用于獲取用于在文件中存儲(chǔ)數(shù)據(jù)的編碼類型。例如,

import java.io.FileReader;
import java.nio.charset.Charset;

class Main {
  public static void main(String[] args) {

    try {
      //使用默認(rèn)編碼創(chuàng)建一個(gè)FileReader
      FileReader input1 = new FileReader("input.txt");

      //創(chuàng)建一個(gè)FileReader指定編碼
      FileReader input2 = new FileReader("input.txt", Charset.forName("UTF8"));

      //返回文件閱讀器的字符編碼
      System.out.println("input1的字符編碼: " + input1.getEncoding());
      System.out.println("input2的字符編碼: " + input2.getEncoding());

      //關(guān)閉 reader
      input1.close();
      input2.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

輸出結(jié)果

input1的字符編碼: Cp1252
input2的字符編碼: UTF8

在上面的示例中,我們創(chuàng)建了2個(gè)文件閱讀器,分別名為input1和input2。

  • input1沒(méi)有指定字符編碼。因此,getEncoding()方法返回默認(rèn)字符編碼。

  • input2指定字符編碼UTF8。因此,getEncoding()方法返回指定的字符編碼。

注意:我們已經(jīng)使用該Charset.forName()方法指定字符編碼的類型。

close()方法

要關(guān)閉文件閱讀器,我們可以使用close()方法。調(diào)用close()方法后,我們將無(wú)法使用讀取器讀取數(shù)據(jù)。

FileReader的其他方法

方法描述
ready()檢查文件閱讀器是否準(zhǔn)備好閱讀
mark()標(biāo)記文件讀取器中已讀取數(shù)據(jù)的位置
reset()重置閱讀器,返回到閱讀器中設(shè)置標(biāo)記的位置
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清