Java 教程

Java 控制語句

面向物件程式設計

Java 內建類

Java 檔案處理

Java 錯誤和異常

Java 多執行緒

Java 同步

Java 網路

Java 集合

Java 介面

Java 資料結構

Java 集合演算法

高階 Java

Java 雜項

Java API 和框架

Java 類引用

Java 有用資源

Java - 建立檔案



在 Java 中建立檔案

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

  • 使用 FileOutputStream() 建構函式

  • 使用 File.createNewFile() 方法

  • 使用 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);

示例:使用 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  

使用 File.createNewFile() 方法建立檔案

File.createNewFile() 方法 允許在給定位置或在當前目錄中建立檔案,如下所示:

語法

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.");
} 

示例:使用 File.createNewFile() 方法建立檔案

以下示例演示如何使用 File 在給定目錄中使用 createNewFile() 方法建立檔案:

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() 方法建立檔案

以下示例演示如何使用 File 在給定目錄中使用 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]
廣告