在我的函數中我想讀取一個文本文件。如果文件不存在,它將被創建。我想使用相對路徑,所以如果我有.jar文件將被創建在完全相同的目錄。我試過this。這是我的函數和變量fName
在f.createNewFile();
設置爲test.txt
Java創建文件如果不存在
private static String readFile(String fName) {
String noDiacText;
StringBuilder sb = new StringBuilder();
try {
File f = new File(fName, "UTF8");
if(!f.exists()){
f.getParentFile().mkdirs();
f.createNewFile();
}
FileReader reader = new FileReader(fName);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(fName), "UTF8"));
String line;
while ((line = bufferedReader.readLine()) != null) {
sb.append(line);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
我得到一個錯誤,它說
java.io.IOException: System cannot find the path specified
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:1012)
at main.zadanie3.readFile(zadanie3.java:92)
添加println或其他東西,並調試路徑的樣子。你也可以說功能的哪一行是拋出異常。 – Reinard
如果你使用Java 7+,你應該考慮使用java.nio.file而不是 – fge
爲什麼?對你來說空檔有什麼好處?和一個空字符串?只要趕上'FileNotFoundException,'或者更好的是讓它被拋出。 – EJP