Fer*_*usi 2 java arrays string filewriter bufferedwriter
我想在 .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();
}
}
Run Code Online (Sandbox Code Playgroud)
我的代码有什么问题我无法理解。编译器没有显示错误。请帮忙。所有答案将不胜感激。
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) {
}
}
Run Code Online (Sandbox Code Playgroud)
您需要关闭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) {
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以将数组写在一行中:
String[] numberOfProperty = {"1", "2", "3"};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1262 次 |
| 最近记录: |