当我们在开发Java应用程序时,可能会遇到需要将数据写入文件的需求,本文将介绍Java中创建、写入文件的5种方式。
1. 使用FileOutputStream和BufferedOutputStream创建和写入文件
使用Java的FileOutputStream和BufferedOutputStream类,我们可以创建和写入文件:
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;
public class FileExample {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = scanner.nextLine();
// 创建文件输出流和缓冲输出流
FileOutputStream fileOutputStream = new FileOutputStream("output.txt");
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
// 将字符串写入到文件中
byte[] buffer = str.getBytes(StandardCharsets.UTF_8);
bufferedOutputStream.write(buffer);
// 关闭流
bufferedOutputStream.close();
fileOutputStream.close();
}
}
上述示例中,我们通过Scanner类获得用户输入的字符串,然后使用FileOutputStream和BufferedOutputStream类创建文件输出流和缓冲输出流。接着,将字符串转换为字节数组,然后将其写入缓冲输出流中。最后,我们必须关闭流以避免资源泄漏。
2. 使用PrintWriter创建和写入文本文件
另一种写入文件的方法是使用Java的PrintWriter类,可以将数据写入文本文件:
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class FileExample {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = scanner.nextLine();
// 创建PrintWriter对象并将其包装在FileWriter对象中
PrintWriter printWriter = new PrintWriter(new FileWriter(new File("output.txt")));
// 将字符串写入到文件中
printWriter.print(str);
// 关闭流
printWriter.close();
}
}
上述示例中,我们通过Scanner类获得用户输入的字符串,然后使用PrintWriter类创建打印流。我们将打印流包装在FileWriter类中,并指定输出文件的路径。然后,我们使用PrintWriter类的print()方法将字符串写入到文件中。最后,流必须关闭以释放资源。
除了print()方法,PrintWriter还提供了println()方法,它可以将字符串作为新行写入文件:
printWriter.println(str);
3. 使用Files类创建和写入文件
在Java 7中,Files类提供了方便的方法来创建和写入文件:
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Scanner;
public class FileExample {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = scanner.nextLine();
// 将字符串写入到文件中
Path path = Paths.get("output.txt");
byte[] buffer = str.getBytes(StandardCharsets.UTF_8);
Files.write(path, buffer);
}
}
在这个示例中,我们使用Scanner类获取用户输入的字符串。然后,我们使用Files类的write()方法将字符串转换为字节数组,并将其写入到文件中。文件路径由Paths类提供的静态get()方法表示。
4. 使用BufferedWriter和FileWriter创建和写入文件
另一种创建和写入文件的方法是使用BufferedWriter和FileWriter类:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class FileExample {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = scanner.nextLine();
// 创建文件输出流和缓冲输出流
FileWriter fileWriter = new FileWriter("output.txt");
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
// 将字符串写入到文件中
bufferedWriter.write(str);
// 关闭流
bufferedWriter.close();
fileWriter.close();
}
}
在上述示例中,我们使用Scanner类获取用户输入的字符串,然后使用FileWriter和BufferedWriter类创建文件输出流和缓冲输出流。我们将字符串写入到缓冲输出流中,最后必须关闭流以释放资源。
5. 使用RandomAccessFile类创建和写入文件
最后一种创建和写入文件的方法是使用Java的RandomAccessFile类:
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Scanner;
public class FileExample {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = scanner.nextLine();
// 创建RandomAccessFile并设置文件长度
RandomAccessFile randomAccessFile = new RandomAccessFile("output.txt", "rw");
randomAccessFile.setLength(0);
// 将字符串写入到文件中
randomAccessFile.writeBytes(str);
// 关闭流
randomAccessFile.close();
}
}
在上述示例中,我们使用Scanner类获取用户输入的字符串,然后使用RandomAccessFile类创建文件并设置其长度。最后,我们将字符串写入到文件中,然后关闭流以释放资源。
这里的"rw"参数是为了告诉RandomAccessFile类可以进行读写操作。如果只需要进行写操作,则可以使用"w"参数。
以上就是Java中创建和写入文件的5种方式。根据你的需求和喜好选择其中的一种最适合你的方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java中创建、写入文件的5种方式 - Python技术站