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]
广告