Java 教程

Java 控制語句

面向物件程式設計

Java 內建類

Java 檔案處理

Java 錯誤與異常

Java 多執行緒

Java 同步

Java 網路程式設計

Java 集合

Java 介面

Java 資料結構

Java 集合演算法

高階 Java

Java 其他

Java APIs 與框架

Java 類參考

Java 有用資源

Java - 檔案寫入



在 Java 中寫入檔案

我們可以使用多種方法在 Java 中寫入檔案。以下是三種最常用的在 Java 中建立檔案的方法:

  • 使用 `FileOutputStream()` 建構函式

  • 使用 `FileWriter.write()` 方法

  • 使用 `Files.write()` 方法

讓我們看看在 Java 中寫入檔案的每種方法。

使用 FileOutputStream 建構函式寫入檔案

FileOutputStream 用於建立檔案並將資料寫入其中。如果檔案不存在,該流會在開啟它進行輸出之前建立它。

以下是兩個可以用來建立 FileOutputStream 物件的建構函式

語法

下面的建構函式接受檔名(字串)來建立一個輸入流物件以寫入檔案:

OutputStream f = new FileOutputStream("C:/java/hello.txt") 

語法

下面的建構函式接受一個檔案物件來建立一個輸出流物件以寫入檔案。首先,我們使用 File() 方法建立一個檔案物件,然後按如下方式將位元組寫入流:

File f = new File("C:/java/hello.txt");
OutputStream f = new FileOutputStream(f);

for(int x = 0; x < bWrite.length ; x++) {
   os.write( bWrite[x] );   // writes the bytes
}

示例:使用 FileOutputStream 建構函式寫入檔案

以下示例演示了使用 FileOutputStream 在當前目錄中寫入檔案:

package com.tutorialspoint;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class FileTest {

   public static void main(String args[]) {
   
      try {
         byte bWrite [] = {65, 66, 67, 68, 69};
         OutputStream os = new FileOutputStream("test.txt");
         for(int x = 0; x < bWrite.length ; x++) {
            os.write( bWrite[x] );   // writes the bytes
         }
         os.close();
     
         InputStream is = new FileInputStream("test.txt");
         int size = is.available();

         for(int i = 0; i < size; i++) {
            System.out.print((char)is.read() + "  ");
         }
         is.close();
      } catch (IOException e) {
         System.out.print("Exception");
      }	
   }
}

上面的程式碼將建立檔案 test.txt 並以二進位制格式寫入給定的數字。標準輸出螢幕上的輸出將相同。

輸出

A  B  C  D  E  

使用 FileWriter.write() 方法寫入檔案

FileWriter 類 的 FileWriter.write() 方法允許將字元寫入檔案,如下所示:

語法

// get an existing file
File file = new File("d://test//testFile1.txt");

// Write Content
FileWriter writer = new FileWriter(file);
writer.write("Test data");
writer.close();

示例:使用 FileWriter.write() 方法寫入檔案

以下示例演示了使用 FileWriter.write() 方法在給定目錄中寫入檔案:

package com.tutorialspoint;

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileTest {

   public static void main(String args[]) {
   
      try {
          File file = new File("d://test//testFile1.txt");
          
          //Create the file
          if (file.createNewFile()) { 
             System.out.println("File is created!");
          } else {
             System.out.println("File already exists.");
          } 
          
          // Write Content
          FileWriter writer = new FileWriter(file);
          writer.write("Test data");
          writer.close();
          
          
          // read content
          FileReader reader = new FileReader(file);
          
          int c;
          while ((c = reader.read()) != -1) {
        	  char ch = (char) c;
              System.out.print(ch);
          }
      } catch (IOException e) {
         System.out.print("Exception");
      }	
   }
}

上面的程式碼將建立檔案 test.txt 並以文字格式寫入給定的字串。標準輸出螢幕上的輸出將相同。

輸出

File is created!
Test data

使用 Files.write() 方法寫入檔案

Files.write() 是一種更新穎且更靈活的方法,可以在同一個命令中建立檔案並將內容寫入檔案,如下所示:

語法

String data = "Test data";
Files.write(Paths.get("d://test/testFile3.txt"), data.getBytes());

List<String> lines = Arrays.asList("1st line", "2nd line");
Files.write(Paths.get("file6.txt"), lines, StandardCharsets.UTF_8, 
   StandardOpenOption.CREATE, StandardOpenOption.APPEND);

示例:使用 Files.write() 方法寫入檔案

以下示例演示了使用 Files.write() 方法在給定目錄中建立檔案:

package com.tutorialspoint;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.Arrays;
import java.util.List;

public class FileTest {

   public static void main(String args[]) {
   
      try {
    	  String data = "Test data";
          Files.write(Paths.get("d://test/testFile3.txt"), data.getBytes());
          List<String> lines = Arrays.asList("1st line", "2nd line");
          Files.write(Paths.get(
             "file6.txt"), lines, StandardCharsets.UTF_8, 
             StandardOpenOption.CREATE, StandardOpenOption.APPEND);
          
          List<String> content = Files.readAllLines(Paths.get("d://test/testFile3.txt"));

          System.out.println(content);
          
          content = Files.readAllLines(Paths.get("file6.txt"));

          System.out.println(content);
      } catch (IOException e) {
         System.out.print("Exception");
      }	
   }
}

上面的程式碼將建立檔案 test.txt 並以文字格式寫入給定的字串。標準輸出螢幕上的輸出將相同。

輸出

[Test data]
[1st line, 2nd line]
廣告