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();
}
(2)InputStreamReader 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();