I/O處理小練習--保存用戶賬號密碼 用戶輸入姓名和密碼,將每一個姓名和密碼保存到文件中,輸入done時程式結束 需要註意的幾個的地方: 1.FileOutputStream一定要放在迴圈之外,否則這個文件的內容會一直覆蓋,最後什麼也存不到 2.判定done的時候,一定要規定長度,要不然這一判斷條件 ...
I/O處理小練習--保存用戶賬號密碼
用戶輸入姓名和密碼,將每一個姓名和密碼保存到文件中,輸入done時程式結束
1 import java.io.*; 2 3 public class Example { 4 public static void main(String[] args){ 5 byte[] name=new byte[20]; 6 byte[] password=new byte[20]; 7 File file=new File("word.txt"); 8 try { 9 FileOutputStream out=new FileOutputStream(file); 10 while(true){ 11 System.out.println("請輸入用戶名:"); 12 System.in.read(name); 13 if("done".equals(new String(name, 0, 4))){ 14 break; 15 } 16 System.out.println("請輸入密碼:"); 17 System.in.read(password); 18 for(int i=0;name[i]!=0;i++){ 19 out.write(name[i]); 20 } 21 for(int i=0;password[i]!=0;i++){ 22 out.write(password[i]); 23 } 24 } 25 out.close(); 26 } catch (IOException e) { 27 // TODO Auto-generated catch block 28 e.printStackTrace(); 29 } 30 31 32 } 33 34 }
需要註意的幾個的地方:
1.FileOutputStream一定要放在迴圈之外,否則這個文件的內容會一直覆蓋,最後什麼也存不到
2.判定done的時候,一定要規定長度,要不然這一判斷條件不可能成功,有空值
3.name[i]!=0的判定是因為位元組數組是已經定義好了長度的,其他地方的空值也會被寫入,導致文件內的格式很亂
4.文件輸出流的關閉一定要放在while迴圈之外,提前關閉了就無法寫入後面的數據了
運行結果如下: