【问题标题】:Java PrintWriter not workingJava PrintWriter 不工作
【发布时间】:2014-09-20 15:25:52
【问题描述】:

我只是想将我的二维数组“拼图”写入文件。我有一个双 for 循环,它读取数组中的每个 'char' 值并将它们写入文件。我似乎无法在我的代码中找到错误。该文件说它在我运行程序时被修改,但它仍然是空白的。谢谢大家!

    public void writeToFile(String fileName)
{
try{
    PrintWriter pW = new PrintWriter(new File(fileName));
    for(int x = 0; x < 25; x++)
    {
        for(int y = 0; y < 25; y++)
        {
            pW.write(puzzle[x][y]);
        }
        pW.println();
    }
  }
  catch(IOException e)
  {
    System.err.println("error is: "+e.getMessage());
  }
}

【问题讨论】:

    标签: java file-io printwriter


    【解决方案1】:

    在 finally 块中关闭您的 PrintWriter 以刷新它并回收资源

    public void writeToFile(String fileName) {
    
      // **** Note that pW must be declared before the try block
      PrintWriter pW = null;
      try {
         pW = new PrintWriter(new File(fileName));
         for (int x = 0; x < 25; x++) {
            for (int y = 0; y < 25; y++) {
               pW.write(puzzle[x][y]);
            }
            pW.println();
         }
      } catch (IOException e) {
         // System.err.println("error is: "+e.getMessage());
         e.printStackTrace();  // *** this is more informative ***
      } finally {
         if (pW != null) {
            pW.close(); // **** closing it flushes it and reclaims resources ****
         }
      }
    }
    

    警告:代码未经测试或编译。

    请注意,另一种选择是使用try with resources

    【讨论】:

    • 试一试,在 finally 语句中没有找到 pW - 说“找不到符号:PW”
    • @user3908256:仔细查看我的示例,尤其是在我声明 pW 变量的地方——我在上面 try 块。
    • 啊对不起-让我试试
    • 工作!谢谢一百万
    • @user3908256:不客气。另一种选择是使用try with resources
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多