JAVA IO流

来源:互联网 发布:淘宝如何增加访客数 编辑:程序博客网 时间:2024/06/06 00:46


1:IO流操作主要是为了对数据进行读写操作

2:输入/输出的流向是相对Java程序而言的


IO流的三种分类:

输入流
输出流

字节流
字符流

节点流
处理流

字节流:

父类为InputStream,OuputStream,此为抽象类,不可实例化对象,需要子类继承,
最常用的是            FileInputStream            和               FileOutputStream.
最常用的的方法    int read(byte[] b,int off ,int len)     ,   void write(byte[] b,int off ,int len)

读取数据示例

//声明输入流引用FileInputStream fis=null;try{//生成代表输入流的对象fis =new FileInputStream("e:/src/from.text");//生成一个字节数组byte [] buffer =new byte[100];//调用输入流的read方法读取数据fis.read(buffer, 0, buffer.length);String s=new String(buffer);//调用String对象的trim方法,去掉字符串首尾的空格s=s.trim();}catch(Exception e){System.out.print(e);}

读取写入的对比

//声明输入流引用FileInputStream fis=null;//声明输出流引用FileOutputStream fos=null;try{//生成代表输入流的对象fis =new FileInputStream("e:/src/from.text");//生成代表输出流的对象fos =new FileOutputStream("e:/src/to.text");//生成一个字节数组byte [] buffer =new byte[100];//调用输入流的read方法读取数据fis.read(buffer, 0, buffer.length);//read的返回值类型是int,正好通过参数给writeint temp=fis.read(buffer, 0, buffer.length);//调用输出流的write方法写入数据fos.write(buffer, 0, temp);}catch(Exception e){System.out.print(e);}

读取大文件的操作

//声明输入流引用FileInputStream fis=null;//声明输出流引用FileOutputStream fos=null;try{//生成代表输入流的对象fis =new FileInputStream("e:/src/from.text");//生成代表输出流的对象fos =new FileOutputStream("e:/src/to.text");//生成一个字节数组byte [] buffer =new byte[1024];while(true){//read的返回值类型是int,正好通过参数给writeint temp=fis.read(buffer, 0, buffer.length);//当数据读完的时候read返回的值为-1if(temp==-1){break;}//调用输出流的write方法写入数据fos.write(buffer, 0, temp);}}catch(Exception e){System.out.print(e);}finally{      //捕获关闭异常try{fis.close();fos.close();}catch(Exception e){System.out.print(e);}}

字符流:

父类为Reader,Writer,此为抽象类,不可实例化对象,需要子类继承,
最常用的是            FileReader                  和                 FileWriter.
最常用的的方法    int read(char[] b,int off ,int len)     ,   void write(char[] b,int off ,int len)

字符流的读取:

FileReader fr=null;FileWriter fw=null;try{fr =new FileReader("e:/src/from.text");fw =new FileWriter("e:/src/to.text");//生成一个字符数组char [] buffer =new char[100];int temp=fr.read(buffer, 0, buffer.length);fw.write(buffer, 0, temp);}}catch(Exception e){System.out.print(e);}finally{try{fr.close();fw.close();}catch(Exception e){System.out.print(e);}}

处理流:

处理流用来装饰节点流,给它增加新功能,比如节点流是用来传输水的,处理流可以在传输水的功能上给水加热
FileReader fileReader=null;//声明处理流对象BufferedReader bufferedReader=null;try{fileReader =new FileReader("e:/src/from.text");//BufferedReader作为处理流用来装饰FileReader节点流,给它添加新功能bufferedReader =new BufferedReader(fileReader);String line = null;while(true){//当数据读取结束,readLine返回nullline=bufferedReader.readLine();if(line==null){break;}System.out.println(line);}}catch(Exception e){System.out.print(e);}finally{try{fileReader.close();bufferedReader.close();}catch(Exception e){System.out.print(e);}}

其实IO流的操作很相似,基本掌握一种操作就可以举一反三


感谢mars老师的JavaforAndroid的视频教程


0 0
原创粉丝点击