java学习之路---IO----字符流

本文详细介绍了Java中字符输出流Writer和字符输入流Reader的基本用法,包括如何将字符串写入文件、使用FileWriter进行追加内容以及如何从文件读取字符流。通过实例演示,帮助读者理解并掌握字符流在Java中的应用。

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

 在java中一个字符等于两个字节,操作字符有Reader和Writer

1.字符输出流

看源码:
          public abstract class Writer implements Appendable, Closeable, Flushable {

这里实现了Appendable(这个表示类容可以被追加,String 类也实现了这个)



1.向文件中写入数据

public class WriterDemo {
           public static void main(String[] args) throws Exception{
              File f= new File("f:"+File.separator +"a.txt" );
              
              Writer w= null;
              
              w= new FileWriter(f);
              
              String str= "hello like";
              
              w.write(str);
              
              w.close();
          }

}
这个和OutputStream 没有什么不同,唯一的好处就是可以直接接收字符串了,不用转byte数组了



2.使用FileWriter追加内容

public class WriterDemo1 {
     public static void main(String[] args) throws Exception{
          File f= new File("f:" +File.separator+"a.txt");
          
          Writer w= new FileWriter(f,true);
          
          String str= "\r\n----Hello world";
          
     
          w.write(str);
          
          w.close();
          
     }

}

3.字符输入流  Reader

     看源码:public abstract class Reader implements Readable, Closeable {




public class ReaderDemo {
           public static void main(String[] args) throws Exception{
              File f= new File("f:"+File.separator +"a.txt" );
              
              Reader r= null;
              
              r= new FileReader(f);
              
              
               char c[]=new char[1024];
              
           int len=r.read(c);
              
              r.close();
              
              System. out.println(new String(c,0,len));
          }

}

结果:

hello like
----Hello world

如果不知道文件的长度,也可以像字节流那样做

public class ReadDemo1 {
     public static void main(String[] args) throws Exception{
          File f= new File("f:" +File.separator+"a.txt");
          
          Reader r= new FileReader(f);
          
           int len=0;
          
           int temp=0;
           char c[]=new char[1024];
          
           while((temp=r.read())!=-1){
              c[ len]=(char)temp;
               len++;
          }
          r.close();
          System. out.println( new String(c,0,len ));
     }
}

结果:
hello like
----Hello world


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值