我想在 .txt 文件中写入字符串数组。但是在运行我的代码之后,我得到一个空文件。这是我的代码。
public void DataSave() throws IOException {
File fout = new File("Data.txt");
FileOutputStream fos = new FileOutputStream(fout);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
String[] numberOfProperty = new String[3];
numberOfProperty[0] = "1";
numberOfProperty[1] = "3";
numberOfProperty[2] = "4";
for (int i = 0; i < numberOfProperty.length; i++) {
bw.write(numberOfProperty[i]);
bw.newLine();
}
}
我无法理解我的代码有什么问题。编译器没有显示任何错误。请帮忙。所有答案将不胜感激。
最佳答案
public void DataSave() {
File fout = new File("Data.txt");
try (FileOutputStream fos = new FileOutputStream(fout); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));) {
String[] numberOfProperty = new String[3];
numberOfProperty[0] = "1";
numberOfProperty[1] = "3";
numberOfProperty[2] = "4";
for (String s : numberOfProperty) {
bw.write(s);
bw.newLine();
}
} catch (IOException ignored) {
}
}
您需要关闭BufferedReader
。更好的解决方案是使用 try-with-resources,因此您无需担心关闭。
您可以在 try-with-resources 中有多个资源,用 ;
分隔。
Java 13+,可以使用Path.of() :
public void DataSave() {
File fout = new File("Data.txt");
try (FileOutputStream fos = new FileOutputStream(fout); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));) {
String[] numberOfProperty = new String[3];
numberOfProperty[0] = "1";
numberOfProperty[1] = "3";
numberOfProperty[2] = "4";
Files.write(Path.of("Data.txt"), Collections.singletonList(numberOfProperty));
} catch (IOException ignored) {
}
}
你也可以在一行中写你的数组:
String[] numberOfProperty = {"1", "2", "3"};
关于java - 如何在 java 中的 .txt 文件中写入或存储字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61651759/