文件相關

1. 從鍵盤讀入字符,注意要處理異常。

         1       InputStreamReader isr = new InputStreamReader(System.in);

                   這樣是一個一個字符的讀取,讀取一個,處理一個,例子:

                   try{

                   InputStreamReader isr = new InputStreamReader(System.in);

                   while(true){

                   int c = isr.read(); //返回了一個字符的ASC2

                   char i        = (char)c;

                  

                   if(c == 13||c == 10){

                            continue;

                            }

                            System.out.println("c:"+c);

                  

                   if(i == 'c'){

                            break;

                            }

         }

                            }catch(Exception e){

                   e.printStackTrace();

                   }

2InputStreamReader isr = new InputStreamReader(System.in);

         這樣是一行一行的讀取,讀取一行,處理一行。例子:

                   try{

                   InputStreamReader isr = new InputStreamReader(System.in);

                   BufferedReader br = new BufferedReader(isr);

                  

                   for(;;){

                   String str = br.readLine();

                   System.out.println("the string is:"+str);

                  

                   if(str.equals("c")){

                            break;

                            }       

         }

                            }catch(Exception e){

                   e.printStackTrace();

                   }

 

2. 文件的讀取

(1) 總述:

一般是一行一行的讀取,讀取一行,處理一行;另外要注意的是文件名的路徑,等文件不在當前路徑時,需要給出絕對路徑,而且絕對路徑要使用轉義字符“//”。注意也要處理異常。

         (2) 例子:

try{

        

                   BufferedReader br = new BufferedReader(new FileReader("1.txt"));

                   String str = br.readLine();//讀第一行;

                   while(str!=null){

                  

                   System.out.println("the string is:"+str);

                   str = br.readLine(); //讀第二行;

         }

                            }catch(Exception e){

                   e.printStackTrace();

                   }

 

3. 實現文件追加的兩種方式:

         (1) 直接在構造函數裏添加參數 true就可以了,這個比較簡單,其他的都不用管。

                   PrintWriter pw = new PrintWriter(new FileWriter("1.txt",true));

(2) 先把源文件的內容做一份拷貝,然後添加在新內容的前面,和添加的內容一起覆蓋源文件的內容。

         //方式二:

         BufferedReader buf=new BufferedReader(new FileReader("1.txt"));

        String str="";

                   String strTmp=buf.readLine();

                   while(strTmp!=null){

                            str=str+strTmp+"/r/n";

                       strTmp=buf.readLine();

                   }

                   System.out.println(str);

                   PrintWriter bt=new PrintWriter(new FileWriter("1.txt"));//寫入文件

                   bt.write(str+"/r/n"+"hello"+"/r/n"+"zhanwei/r/n"+"dfsfsf/r/n");

                   bt.close();

                            }catch(Exception e){

                   e.printStackTrace();

                   }

 

4. 對象的讀寫:

         (1)對象讀入文件:讀進來的對象在文件裏顯示的是亂碼。

         先建立一個User對象,需要特別注意的是,User類一定要定義成序列化對象,即Serializable,例子:

public class User implements Serializable{}

===========================================================================

 

                   User user = new User();

                   user.setUserName("aaa");

         ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("text0.xdj"));

                   oos.writeObject(user);

                   oos.close();

         (2)    從文件讀取對象:可以打印出對象的一些屬性

                   例子:

                   ObjectInputStream ois = new ObjectInputStream(new FileInputStream("text0.xdj"));

                   User user0 = (User)ois.readObject();

                   System.out.println(user0.getUserName());

                   ois.close();

發佈了26 篇原創文章 · 獲贊 5 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章