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