黑马程序员_java IO流

原创 2015年07月09日 22:08:09

------- android培训java培训、期待与您交流! ----------

1.IO流:

IO流用来处理设备之间的数据传输

Java对数据的操作时通过流的方式

Java用于操作流的对象都在IO包中

流按操作数据分为两种,字节流与字符流

流按流向分为:输入流,输出流

2.IO流常用基类

2.1字节流的抽象基类

InputStream     OutputStream

2.2字符流的抽象基类

Reader   Writer

注::由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。

如:InputStream的子类FileputStream、Reader的子类FIleReader

[java] view plaincopy
  1. import java.io.*;  
  2. class  FileWriterDemo  
  3. {  
  4.     public static void main(String[] args) throws IOException  
  5.     {  
  6.         //创建一个FileWriter对象。该对象一被初始化就必须要明确被操作的文件。  
  7.         //而且该文件会被创建到指定目录下。如果该目录下已有同名文件,将被覆盖。  
  8.         //其实该步就是在明确数据要存放的目的地。  
  9.         FileWriter fw = new FileWriter("demo.txt");  
  10.   
  11.         //调用write方法,将字符串写入到流中。  
  12.         fw.write("abcde");  
  13.   
  14.         //刷新流对象中的缓冲中的数据。  
  15.         //将数据刷到目的地中。  
  16.         //fw.flush();  
  17.   
  18.   
  19.         //关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据。  
  20.         //将数据刷到目的地中。  
  21.         //和flush区别:flush刷新后,流可以继续使用,close刷新后,会将流关闭。  
  22.         fw.close();  
  23.     }  
  24. }  
3.复制文件:

复制的原理:其实就是将一个盘下的文件数据存储到另一个盘中的一个文件中。

步骤:

3.1在盘中创建一个文件,用于存储盘中的文件中的数据

3.2定义读取流和盘中的文件关联

3.3通过不断的读写完成数据存储。


[java] view plaincopy
  1. import java.io.*;  
  2.   
  3. class CopyText   
  4. {  
  5.     public static void main(String[] args) throws IOException  
  6.     {  
  7.         copy_2();  
  8.     }  
  9.   
  10.   
  11.     public static void copy_2()  
  12.     {  
  13.         FileWriter fw = null;  
  14.         FileReader fr = null;  
  15.         try  
  16.         {  
  17.             fw = new FileWriter("SystemDemo_copy.txt");  
  18.             fr = new FileReader("SystemDemo.java");  
  19.   
  20.             char[] buf = new char[1024];  
  21.   
  22.             int len = 0;  
  23.             while((len=fr.read(buf))!=-1)  
  24.             {  
  25.                 fw.write(buf,0,len);  
  26.             }  
  27.         }  
  28.         catch (IOException e)  
  29.         {  
  30.             throw new RuntimeException("读写失败");  
  31.   
  32.         }  
  33.         finally  
  34.         {  
  35.             if(fr!=null)  
  36.                 try  
  37.                 {  
  38.                     fr.close();  
  39.                 }  
  40.                 catch (IOException e)  
  41.                 {  
  42.                 }  
  43.             if(fw!=null)  
  44.                 try  
  45.                 {  
  46.                     fw.close();  
  47.                 }  
  48.                 catch (IOException e)  
  49.                 {  
  50.                 }  
  51.         }  
  52.     }  
  53.   
  54.     //从C盘读一个字符,就往D盘写一个字符。  
  55.     public static void copy_1()throws IOException  
  56.     {  
  57.         //创建目的地。  
  58.         FileWriter fw = new FileWriter("RuntimeDemo_copy.txt");  
  59.   
  60.         //与已有文件关联。  
  61.         FileReader fr = new FileReader("RuntimeDemo.java");  
  62.   
  63.         int ch = 0;  
  64.   
  65.         while((ch=fr.read())!=-1)  
  66.         {  
  67.             fw.write(ch);  
  68.         }  
  69.           
  70.         fw.close();  
  71.         fr.close();  
  72.   
  73.     }  
  74.   
  75.   
  76. }  
4.字符流的缓冲区

缓冲区的出现提高了对数据的读写效率

对应类:bufferedWriter BufferedReader

缓冲区要结合流才可以使用

在流的基础上对流的功能进行了增强。

[java] view plaincopy
  1. /* 
  2. 字符读取流缓冲区: 
  3. 该缓冲区提供了一个一次读一行的方法 readLine,方便于对文本数据的获取。 
  4. 当返回null时,表示读到文件末尾。 
  5.  
  6. readLine方法返回的时候只返回回车符之前的数据内容。并不返回回车符。 
  7.  
  8.  
  9.  
  10. */  
  11.   
  12. import java.io.*;  
  13.   
  14. class  BufferedReaderDemo  
  15. {  
  16.     public static void main(String[] args) throws IOException  
  17.     {  
  18.         //创建一个读取流对象和文件相关联。  
  19.         FileReader fr = new FileReader("buf.txt");  
  20.   
  21.         //为了提高效率。加入缓冲技术。将字符读取流对象作为参数传递给缓冲对象的构造函数。  
  22.         BufferedReader bufr = new BufferedReader(fr);  
  23.           
  24.   
  25.         String line = null;  
  26.   
  27.         while((line=bufr.readLine())!=null)  
  28.         {  
  29.             System.out.print(line);  
  30.         }  
  31.   
  32.   
  33.         bufr.close();  
  34.     }  
  35.   
  36. }  

黑马程序员-Java基础总结10——IO流体系(一)

IO流 ------- android培训、java培训、期待与您交流! ---------- 一、IO流概述: 文件是数据的静态存储形式,而流是指数据传输时的形态,而流操作对象除文件外...
  • zms2100
  • zms2100
  • 2014年04月13日 04:40
  • 731

黑马程序员_java基础笔记(07)...IO流

IO(InputStream,outputStream)字节流   (Reader,Writer)字符流   IO流用来处理设备之间的数据传输,java对数据的操作是通过流的方式,java用于操作...

黑马程序员--java技术--IO流

18-07 FileWriter:后缀名是父类名,前缀名是该流对象的功能。 1、创建FileWriter对象,对象初始化时会将文件创建到指定目录下,如果该目录下已有同名文件,将被覆盖掉。需要声明IO异...

黑马程序员---Java IO流操作(2)

------- android培训、java培训、期待与您交流! ---------- 1.File类

黑马程序员java学习笔记——IO流

IO流     概述     流的特点     IO流用于处理设备之间的数据传输;     java对数据的操作是通过流的方式;     java用于操作留的对象都放在IO包中;     流按操...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员_java IO流
举报原因:
原因补充:

(最多只允许输入30个字)