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 FileWriter 類

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

java.io包的FileWriter類可用于將數(shù)據(jù)(以字符為單位)寫入文件。

它繼承了OutputStreamWriter類。

FileWriter是OutputStreamWriter的子類,而OutputStreamWriter是Java Writer的子類。

在進(jìn)一步了解FileWriter之前,請(qǐng)確保了解Java文件。

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

為了創(chuàng)建文件寫入器,我們必須首先導(dǎo)入Java.io.FileWriter包。導(dǎo)入包后,就可以創(chuàng)建文件寫入器。

1.使用文件名

FileWriter output = new FileWriter(String name);

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

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

FileWriter  input = new FileWriter(File fileObj);

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

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

但是,由于Java 11,我們也可以指定字符編碼的類型(UTF8UTF16)。

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

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

FileWriter的方法

FileWriter類為Writer類中出現(xiàn)的不同方法提供了實(shí)現(xiàn)。

write()方法

  • write() -向?qū)懭肫鲗懸粋€(gè)字符

  • write(char[] array) -將指定數(shù)組中的字符寫入寫入器

  • write(String data) -將指定的字符串寫入寫入器

示例:FileWriter將數(shù)據(jù)寫入文件

import java.io.FileWriter;

public class Main {

  public static void main(String args[]) {

    String data = "This is the data in the output file";

    try {
      // 創(chuàng)建 FileWriter
      FileWriter output = new FileWriter("output.txt");

      // 將字符串寫入文件
      output.write(data);

      //關(guān)閉 writer
      output.close();
    }

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

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

FileWriter output = new FileWriter("output.txt");

要將數(shù)據(jù)寫入文件,我們使用了write()方法。

在這里,當(dāng)我們運(yùn)行程序時(shí),output.txt文件將填充以下內(nèi)容。

This is a line of text inside the file.

getEncoding()方法

getEncoding()方法可用于獲取用于寫入數(shù)據(jù)的編碼類型。例如,

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

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

    String file = "output.txt";

    try {
      //使用默認(rèn)編碼創(chuàng)建一個(gè)FileReader
      FileWriter output1 = new FileWriter(file);

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

      //返回閱讀器的字符編碼
      System.out.println("output1的字符編碼: " + output1.getEncoding());
      System.out.println("output2的字符編碼: " + output2.getEncoding());

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

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

輸出結(jié)果

output1的字符編碼: Cp1252
output2的字符編碼: UTF8

在上面的示例中,我們創(chuàng)建了2個(gè)文件寫入器,分別名為output1和output2。

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

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

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

close()方法

要關(guān)閉文件寫入器,我們可以使用close()方法。一旦調(diào)用了close()方法,就不能使用writer寫入數(shù)據(jù)。

FileWriter的其他方法

方法描述
flush()強(qiáng)制將寫入器中存在的所有數(shù)據(jù)寫入相應(yīng)的目的地
append()將指定字符插入當(dāng)前寫入器
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清