java字节流与字符流

继上个博客:

字节过滤流:

1.缓冲流:

    1.1分类:

        1.BufferedInputStream

        2.BufferedOutoutStream(主要用于BufferedOutoutStream)

    1.2FileOutputStream fos = new FileOutputStream("文件名");
          BufferedOutoutStream bos = new BufferedOutoutStream(fos);

    1.3作用:

         1.提高IO效率,减少访问磁盘的次数

         2.数据存储在缓存区中,flush是将缓存区的内容写入文件中,也可以直接close

2.对象流

   2.1分类:ObjectOutputStream/ObjectInputStream

   2.2功能:

         1.增强的缓冲区功能

         2.增强了读写8种基本数据类型和字符串功能

         3.增强了读写对象的功能

         4.使用流传输的对象的过程称为序列化、反序列化

再读取对象的过程中,因为不知道最后一个对象是否在哪一个,如果访问到不在的对象会报错,所以采用try{}catch{}解决

 

while(true){
try {
Object obj = ois.readObject();
System.out.println(obj);
} catch (Exception e) {
break;//当遇到查询不到对象报
            异常时捕获结束循环

}
}
对象序列化:

必须实现Serializable接口

必须保证其所有属性均可序列化(所有属性实现Serializable接口)

transient修饰为临时属性,不参与序列化

读取到文件尾部的标志:java.io.EOFException

 

 

字符过滤流:

缓冲流:

      BufferedWriter/BufferedReader

           支持换行符:newLine()不足:每次换行都要书写一遍,代码冗余

           每读一次读一行:readLine();

      PrintWriter:

           封装了print()/println()方法,支持写入后换行

字符节点流:

      桥转换流:

      InputStreamReader/OutputStreamWriter

//1.字节输出流
OutputStream os = new FileOutputStream("Files\\convert.txt");//字节输出流
//编码 2.转换为字符输出流
OutputStreamWriter osw = new OutputStreamWriter(os,"UTF-8");//指定输出的数据 编码格式
//3.包装字符过滤流
PrintWriter pw = new PrintWriter(osw);
//4.关闭流

 

 

//1.字节输入流
InputStream is = new FileInputStream("Files\\convert.txt");
//解码 2.转换为字符输入流
InputStreamReader isr = new InputStreamReader(is,"UTF-8");
//3.包装字符过滤流
BufferedReader br = new BufferedReader(isr);
//4.关闭流

 

读入方式
while(true) {
String s = br.readLine();
if(s == null) {
break;
}
System.out.println(s);
}
br.close();

 

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值