Java怎么创建文件?

文章导读
Previous Quiz Next 在 Java 中创建文件 我们可以使用多种方式在 Java 中创建文件。以下是三种在 Java 中创建文件的最常用方法 −
📋 目录
  1. 在 Java 中创建文件
  2. 使用 FileOutputStream 构造函数创建文件
  3. 使用 File.createNewFile() 方法创建文件
  4. 使用 Files.write() 方法创建文件
A A

Java - 创建文件



Previous
Quiz
Next

在 Java 中创建文件

我们可以使用多种方式在 Java 中创建文件。以下是三种在 Java 中创建文件的最常用方法 −

  • 使用 FileOutputStream() 构造函数

  • 使用 File.createNewFile() 方法

  • 使用 Files.write() 方法

让我们逐一了解在 Java 中创建文件的方法。

使用 FileOutputStream 构造函数创建文件

FileOutputStream 用于创建文件并向其中写入数据。如果文件不存在,该流会在打开用于输出之前创建文件。

以下是两个可用于创建 FileOutputStream 对象的构造函数。

以下构造函数接受一个字符串作为文件名,用于创建输入流对象以写入文件 −

语法

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

语法

以下构造函数接受一个 file 对象,用于创建输出流对象以写入文件。首先,我们使用 File() 方法创建一个 file 对象,如下所示 −

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

示例:使用 FileOutputStream 构造函数创建文件

以下示例演示了如何使用 FileOutputStream 在当前目录中创建一个文件 −

package com.;

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] );   // 写入字节
         }
         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,并以二进制格式写入给定的数字。stdout 屏幕上的输出将相同。

输出

A  B  C  D  E  

使用 File.createNewFile() 方法创建文件

File.createNewFile() 方法允许在指定位置或当前目录中创建文件,如下所示 −

语法

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

//创建文件
if (file.createNewFile()) { 
   System.out.println("文件已创建!");
} else {
   System.out.println("文件已存在。");
} 

示例:使用 File.createNewFile() 方法创建文件

以下示例演示了如何使用 createNewFile() 方法在指定目录中创建文件 −

package com.;

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");
          
          //创建文件
          if (file.createNewFile()) { 
             System.out.println("文件已创建!");
          } else {
             System.out.println("文件已存在。");
          } 
          
          // 写入内容
          FileWriter writer = new FileWriter(file);
          writer.write("Test data");
          writer.close();
          
          
          // 读取内容
          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,并以文本格式写入给定的字符串。stdout 屏幕上的输出将相同。

文件已创建!
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.;

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,并以文本格式写入指定的字符串。stdout 屏幕上的输出将相同。

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