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();