[問題] 存檔讀檔後資料不一致?

看板java作者 (H2O)時間11年前 (2013/10/20 18:04), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/1
各為大家好 最近寫的程式中, 要把JTextField 輸入的值存在文字檔中(e.g ID名稱) 然後讀取該文字檔, 不過卻發現輸入的和讀出的值會不相同 用System.out 去測試看到的卻是出現一樣的(e.g 我輸入PETER )都是System.out 出 PETER 不過用if(.equals)比卻是不同的 存檔 假設我輸入PETER try{ UserInterface.ID=UserInterface.id.getText() FileWriter fw3=new FileWriter(".\\record\\UserRecord.txt"); fw3.write(face.userid); fw3.close(); } catch(IOException io){ } 讀檔 try{ char userid []=new char[1024]; FileReader fr3=new FileReader(".\\record\\UserRecord.txt"); fr3.read(userid); catch(IOException io){ } userid轉成字串後用system.out 去看 也是顯示PETER 不過實際上兩個卻不相同用if(UserInterface.ID.eauals(face.userid))去測試為flase 以至於我要用所取得的ID去開別的檔而打不開 想請教各位是哪邊出了錯誤呢? 還請大家指點 謝謝各位. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.108.205.100 ※ 編輯: jasongood117 來自: 120.108.205.100 (10/20 18:06)

10/20 19:18, , 1F
有可能是輸出寫入檔案時, 摻了空白字元或是斷行字元
10/20 19:18, 1F

10/20 19:21, , 2F
查看看fr3.read的結果是讀到幾個字元
10/20 19:21, 2F

10/20 21:58, , 3F
char[1024]? 都先 trim() 一下再比對吧
10/20 21:58, 3F
謝謝樓上兩位的熱心幫忙, 真的是多了空白字元, 用trim()果然就可以了, 非常感謝^_^ ※ 編輯: jasongood117 來自: 123.110.5.195 (10/21 01:00)

10/21 10:58, , 4F
不... 你應該去思考一下為什麼要 char[1024] 及其後果
10/21 10:58, 4F

10/21 12:54, , 5F
新手三大痛處 IO Thread synchronized
10/21 12:54, 5F

10/21 13:00, , 6F
到現在都還是不會 [遮臉]
10/21 13:00, 6F
文章代碼(AID): #1IOwgY5X (java)
文章代碼(AID): #1IOwgY5X (java)