[英]Is there a problem with BufferedWriter in JAVA?
我是 OOP 和 Java 編程的新手,所以請原諒我。 我寫了一個小類,我嘗試使用BufferedReader 類在文件中寫入一個字符串。 一切正常,但文件是“空的” ,我的意思是我看不到里面的任何東西。
但可以肯定的是,數據已存儲,因為當我關閉 Eclipse 並再次打開它並運行驅動程序類進行測試時,數據將從文件中恢復。 順便說一下,我使用“嘗試使用資源”機制,因此我的文件會自動“關閉” 。
有人已經遇到這個問題了嗎? 我的Eclipse版本是“2018-12”
下面,您有一個帶有“writeToFile”方法的小類,我在其中使用了BufferedReader 類。
package parlons.code.tipcalulator.utilities;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileManagement {
private File tipFile;
public FileManagement(String tipsFileName) {
this.tipFile = new File("/"+tipsFileName);
}
public String readFromFile() {
String tip = null;
try(BufferedReader bufferedReader = new BufferedReader(new FileReader(this.tipFile))) {
tip = bufferedReader.readLine();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return tip;
}
public void writeToFile(String decimal) {
try(BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(tipFile,true))){
bufferedWriter.write(decimal);
} catch (IOException e) {
e.printStackTrace();
}
}
}
下面,您將找到用於測試目的的 Driver 類。
package parlons.code.tipcalulator.utilities;
public class UtilitiesTestDriver {
public static void main(String[] args) {
String decimal = "108";
FileManagement fileManagement = new FileManagement("tipFile.txt");
fileManagement.writeToFile(decimal);
System.out.println(fileManagement.readFromFile());
}
}
根據 Makoto 上面的評論,如果您更改為例如,一切正常:
this.tipFile = new File("./"+tipsFileName);
這將在項目的根目錄中創建 tipFile.txt 文件(包含 108 個)(而不是文件系統的根目錄 - 您可能沒有寫權限。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.