Java代码中的Linux写文件异常

时间:2013-12-07 15:04:16

标签: java linux ubuntu

这是我的WriteFile

WriteFile.writeFile(str, "./test/my.html");

writeFile()方法代码

public static void writeFile(String content, String fileName)
  {
    try
    {
      File file = new File(fileName);
      if (!file.exists()) {
        file.createNewFile();
      }
      FileWriter fw = new FileWriter(file.getAbsoluteFile());
      BufferedWriter bw = new BufferedWriter(fw);
      bw.write(content);
      bw.close();
    }
    catch (IOException e)
    {
      e.printStackTrace();
    }
  }

此代码正常使用Windows但在Linux中我遇到异常

java.io.IOException: No such file or directory
    at java.io.UnixFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(File.java:1006)
    at org.sewa.util.WriteFile.writeFile(WriteFile.java:25)

1 个答案:

答案 0 :(得分:2)

createNewFile的行为在Windows和Linux中是相同的,因此很可能您指定的文件的路径存在于Windows中,而在Linux中则不存在。在您的示例中,Linux中的test/目录不存在于您执行程序的目录中。如果要创建整个路径,请参阅File#mkdirs