有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法将所有数据写入txt文件

我在将数据写入我的数据库时遇到问题。txt文件。它不会将所有数据写入我的数据库。txt文件。我试过把所有的东西都放在一个数组中,但也不起作用

我的代码:

 BufferedWriter writer = null;

    try {
        String line;
        Process p = Runtime.getRuntime().exec("ps -A -o pid");
        BufferedReader input =
                new BufferedReader(new InputStreamReader(p.getInputStream()));
        while ((line = input.readLine()) != null) {

              writer = new BufferedWriter(new FileWriter(" the path .."));
              writer.write(line);
            System.out.println(line);

        }
        writer.close();
        input.close();

    } catch (Exception err) {
        err.printStackTrace();
       System.out.println("Sorry!");
    }

它只写入控制台的最后一行


共 (1) 个答案

  1. # 1 楼答案

    通过在循环的每次迭代中重新创建对象而不关闭它,您将丢弃到目前为止所写的内容(必须使用writer.close()保存使用该对象编写的内容)

    您需要在循环之前声明writer,因此将其更改为以下内容

    BufferedWriter writer = null;
    
        try {
            String line;
            Process p = Runtime.getRuntime().exec("ps -A -o pid");
            BufferedReader input =
                    new BufferedReader(new InputStreamReader(p.getInputStream()));
            writer = new BufferedWriter(new FileWriter(" the path .."));
            while ((line = input.readLine()) != null) {
    
                  writer.write(line);
                System.out.println(line);
    
            }
            writer.close();
            input.close();
    
        } catch (Exception err) {
            err.printStackTrace();
           System.out.println("Sorry!");
        }
    

    我可以问一下,为什么每次迭代都要声明writer对象