java - 如何在 java 中的 .txt 文件中写入或存储字符串数组

标签 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();
        }
    }

我无法理解我的代码有什么问题。编译器没有显示任何错误。请帮忙。所有答案将不胜感激。

最佳答案

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/

相关文章:

java - RESTful web 服务无法在 Tomcat 8.0.5 上启动

java.lang.NoClassDefFoundError : Could not initialize class javax. swing.UIManager

javascript - 比较 2 个数组以查看对象是否存在

c# - String.Format 某些参数

java - 为仪表板创建按钮,onClick 问题,也许更好的解决方案?

java - Hibernate Eclipse 未知实体(使用 javax.persistence.Entity)

linux - 循环遍历带空格的字符串数组

带有嵌套 foreach 的 PHP 数组

javascript - 从调用范围访问 javascript 变量

java - 关于Java的字符串池的问题