基本上,我正在嘗試創(chuàng)建一個簡單的數(shù)據(jù)庫應(yīng)用程序,并在每個學(xué)生條目中自動生成 ID。程序讀取前一個最高的 ID 并加 1 以創(chuàng)建下一個。然而,即使文本文檔中有數(shù)字,BufferedReader 在使用 readLine 時仍然返回 null我檢查了我的 int 解析是否是問題,但我通過將 readline 保存到變量然后打印它,意識到這是 bufferedreader,我得到的結(jié)果為 null。我還嘗試使用掃描儀文件讀取,但這不起作用,我檢查了所有相關(guān)的類和方法以嘗試找出答案。此代碼創(chuàng)建 topsid 文件并寫入 0 來初始化它,該文件被讀取為 nullif(MiscProcesses.firstStartup() == false) //method that checks if these files exist{ File topsid = new File("topsid.txt"); FileWriter fw = new FileWriter(topsid); fw.write("0"); fw.close();}此代碼負(fù)責(zé)讀取文件,從而找到更高的 id 值Student (String[] studata) { //checking highest SID File topsid = new File("topsid.txt"); FileWriter fw = new FileWriter(topsid); FileReader fr = new FileReader(topsid); BufferedReader br = new BufferedReader(fr); //checking high sid file and getting new sid String test = br.readLine(); System.out.println(test+" <test"); <this ends up printing null int sid; sid = Integer.parseInt(test)+1; System.out.println(sid); fw.write(Integer.toString(sid)); this.id = sid; ... br.close(); fr.close(); fw.close(); }當(dāng)我在第二個代碼運行之前打開 topsid 文件時,一切都很好,并且文件包含零。我希望 bufferedreader 讀取“0”,但它只是讀取 null,當(dāng)我在代碼運行后打開文件時,里面的數(shù)據(jù)會被刪除。
1 回答

MYYA
TA貢獻1868條經(jīng)驗 獲得超4個贊
FileWriter fw = new FileWriter(topsid);
FileReader fr = new FileReader(topsid);
BufferedReader br = new BufferedReader(fr);
創(chuàng)建FileWriter這樣的文件會在您讀取其內(nèi)容之前破壞現(xiàn)有文件。
如果您想從文件中讀取某些內(nèi)容,然后寫回某些內(nèi)容,請在讀取FileWriter 后創(chuàng)建 。
添加回答
舉報
0/150
提交
取消