我们可以通过多种方式在Java中向文件写入内容。以下是三种最流行的方法来向文件写入内容:
让我们来看看在Java中写入文件的每一种方法。
使用FileOutputStream
构造函数写入文件
FileOutputStream
用于创建一个文件并写入数据。如果指定的文件不存在,则此流会在打开它以进行输出之前创建这个文件。
创建FileOutputStream
对象的构造函数
以下构造函数接受一个字符串形式的文件名来创建一个输出流对象以写入文件:
OutputStream f = new FileOutputStream("C:/java/hello.txt");
以下构造函数接受一个文件对象来创建一个输出流对象以写入文件。首先,我们使用File()
方法创建一个文件对象如下:
File f = new File("C:/java/hello.txt");
OutputStream os = new FileOutputStream(f);
for(int x = 0; x < bWrite.length ; x++) {
os.write( bWrite[x] );
}
示例:使用FileOutputStream
构造函数写入文件
下面是一个示例,演示如何使用FileOutputStream
在当前目录下写入一个文件:
package com.tutorialspoint;
import java.io.*;
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("异常");
}
}
}
上述代码会在当前目录创建文件test.txt
,并以二进制格式写入给定的数字。相同的输出将显示在标准输出屏幕上。
输出
A B C D E
使用FileWriter.write()
方法写入文件
FileWriter.write()
方法允许将字符写入到一个文件中,如下面所示:
File file = new File("d://test//testFile1.txt");
FileWriter writer = new FileWriter(file);
writer.write("测试数据");
writer.close();
示例:使用FileWriter.write()
方法写入文件
下面是一个示例,演示如何使用FileWriter.write()
方法在指定目录中写入一个文件:
package com.tutorialspoint;
import java.io.*;
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("测试数据");
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("异常");
}
}
}
上述代码会在指定位置创建文件testFile1.txt
,并以文本格式写入给定的字符串。同样的输出将显示在标准输出屏幕上。
输出
文件已创建!
测试数据
使用Files.write()
方法写入文件
Files.write()
是一个较新且更灵活的方法,可以在同一命令中创建一个文件并写入内容,如下面所示:
String data = "测试数据";
Files.write(Paths.get("d://test/testFile3.txt"), data.getBytes());
List<String> lines = Arrays.asList("第1行", "第2行");
Files.write(Paths.get("file6.txt"), lines, StandardCharsets.UTF_8,
StandardOpenOption.CREATE, StandardOpenOption.APPEND);
示例:使用Files.write()
方法写入文件
下面是一个示例,演示如何使用Files.write()
方法在指定目录中写入一个文件:
package com.tutorialspoint;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;
import java.util.Arrays;
import java.util.List;
public class FileTest {
public static void main(String args[]) {
try {
String data = "测试数据";
Files.write(Paths.get("d://test/testFile3.txt"), data.getBytes());
List<String> lines = Arrays.asList("第1行", "第2行");
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("异常");
}
}
}
上述代码会在指定位置创建文件testFile3.txt
,并以文本格式写入给定的字符串。相同的输出将显示在标准输出屏幕上。
输出
[测试数据]
[第1行, 第2行]