JavaIO输入输出流的总结

来源:互联网 发布:佳词网络怎么样 编辑:程序博客网 时间:2024/06/05 15:36

IO流按流向可分两类:

输入流:InputStream /Reader。好比是一根水管,里面有挤满了的字节或者字符单位。隐士指针记录从哪个水滴开始读取。  读

输出流:OutpStream/Writer。 也是一个水管,只是里面没有任何水滴,当向水管里加水的时候,才开始注入水滴。写

提高性能:1.加缓冲  2处理流

InputStream /Reader:本身是抽象类,不能创建实例有方法 read() read(byte [] b) read(byte [] b,int off,int len)



FileInputStream FileReader 节点流。跟文件联系在一起。

字节可以处理任何数据类型,字符要比字节能处理的类型要少。通常在处理文本时优先使用字符流,其他的用字节流在读写文件需要对内容按行处理,比如比较特定字符,处理某一行数据的时候一般会选择字符流。只是读写文件,和文件内容无关的,一般选择字节流。

 java只提供了将字节流转换为字符流的方法

把经常读取文本的输入流写成BufferedReader

1.读取用户屏幕的输入

public class FileInputStreamTest  {    public static void main(String[] args) throws IOExceptio        try (   //将输入流InpustStream  转化为Reader对象 转成字符输入流                InputStreamReader reader = new InputStreamRe                               //将普通的reader包装成BufferReader的U            BufferedReader br = new BufferedReader(reader);                ){            String line = null;            while ((line=br.readLine())!=null){                if(line.equals("exit")){                    System.exit(1);                }                                 System.out.print("输出内容:"+line);            }        }   catch (IOException i)        {            i.printStackTrace();        }           }                                                  }         

2:向硬盘里写数据

      try (FileWriter fw = new FileWriter("d:\\poem.txt")) {          fw.write("锦瑟-李商隐\r\n");          fw.write("庄生晓梦");      } catch (IOException e) {          e.printStackTrace();      }  }

3.读取文件数据

public class HelloJava {   public static void main(String[] args){       try {           FileWriter fileWriter = new FileWriter("test.txt");           //写入数据到内存里           fileWriter.write("adadada");           //刷新流           fileWriter.flush();           fileWriter.close();//关闭流       }catch (IOException e)       {           e.printStackTrace();       }    }}


    try {        FileReader fr = new FileReader("d:\\poem.txt");        char[] buf = new char[20];        int num = fr.read(buf);        System.out.println("num" + num + new String(buf));    } catch (FileNotFoundException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    }

0 0
原创粉丝点击