Day20-3.IO流关流的方式总结、IO流总结

1 IO流关流的方式总结

JDK1.7之前的关流正确方式

package demos6;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Demo03 {
    public static void main(String[] args) throws IOException {

        FileInputStream fis = null;
        FileOutputStream fos = null;
        try{
            fis = new FileInputStream("day20/a.txt");
            fos = new FileOutputStream("day20/a2.txt");
            int i;
            while((i = fis.read()) != -1){
                fos.write(i);
            }
        }finally{
            try{
                if(fis != null){
                    fis.close();
                }
            }finally {
                if(fos != null){
                    fos.close();
                }
            }
        }
    }
}

JDK1.7之后的关流方式

package demos6;

import java.io.*;

public class Demo04 {
    public static void main(String[] args) throws IOException {
        try(
                FileReader fis = new FileReader("day20/a.txt");
                FileWriter fos = new FileWriter("day20/a2.txt");
        ){
            int i;
            while((i = fis.read()) != -1){
                fos.write(i);
            }
        }
    }
}

2 IO流总结

  1. IO:输入和输出
    数据从其他设备进入运行内存就是输入
    数据从运行内存到其他设备就是输出
  2. 字节流
    字节输入流:InputStream 抽象类
                         read();
                         read(byte[] bs);
                         read(byte[] bs,int off,int len);
                         close();
          子类:FileInputStream
    字节输出流:OutputStream 抽象类
                          write(int i)
                          write(byte[] bs)
                          write(byte[] bs,int off,int len);
                          close();
          子类:FileOutputStream
    BufferedInputStream
    BufferedOutputStream
  3. 字符流
    字符输入流:Reader抽象类
                          FileReader
    字符输出流:Writer抽象类
                          FileWriter
    使用字符流拷贝纯文本文件
    不能使用字符流拷贝非纯文本文件
    BufferedReader
            readLine();
    BufferedWriter
             newLine();
  4. 转换流
    输入:InputStreamReader
    输出:OutputStreamWriter
          都是字符流 在创建对象是需要字节流
          既然都是字符流,所以,字符流的方法都可以使用
    单独的特点:可以指定编码读取和写出信息
  5. 标准输入输出流
    System.in:字节输入流
    System.out:字节输出流
    单独的特点:
                 System.in默认读取录入的数据
                 System.out:默认将数据写出到控制台
  6. 打印流
    PrintStream:打印字节流 属于字节输出流
    PrintWriter:打印字符流 属于字符输出流
    单独的特点:
                 两个类型中有一些特殊的方法:
                 print 和ptintln 可以输出任何类型的数据
  7. 对象序列化流和反序列流
    ObjectOutputStream:对象序列化流
                  writeObject(Object o)
    ObjectInputStream:对象反序列化流
                  readObject();
  8. Properties
    是一个双列集合
    有一些和IO结合的方法:
                   store(Writer w,String str):将双列集合中的键值对数据写出到目标文件中保存
                   load(Reader r):将文件中的键值对数据,读取到集合中存储
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值