文件相关

本文详细介绍Java中从键盘读取字符、文件读写、文件追加及对象的读写方法。通过具体示例展示了不同场景下的操作技巧,并强调了异常处理的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值