io文件读写

字节流:

字节流是以字节为传输单位的数据读写形式,用于直接读取二进制数据,如图像和声音文件等。

InputStream和OutputStream分别为面向字节的输入流类的父类和输出流类的父类。InputStream和OutputStream都是抽象类。 

FileInputStream是InputStream的子类。
FileInputStream类的一般用法是:先创建一个FileInputStream对象关联到要读取的文件,然后调用read方法读取字节数据到程序中,再进行其他处理。因为read方法是按字节的读入的,所以汉字被读入时会出现乱码。
 
FileOutputStream是OutputStream的子类。
FileOutputStream类的一般用法是:先创建一个FileOutputStream对象关联到要写入的文件,然后调用write方法将字节数据写到程序中。如果进行写操作的文件不存在,则自动创建该文件,但是如果文件所在的路径也不存在,则运行时会报错。
FileOutputStream与FileInputStream使用BufferedOutputStream与 BufferedInputStream作为字节流缓冲区。


字符流:

Reader 和 Writer类是所有字符流的父类。一次读取或是写入两个字节,16位,即一个Unicode字符,因此可以使用字符流直接读写汉字内容。

BufferedReader与BufferedWriter是文件读写缓冲区:

写文件:

[java]  view plain  copy
  1. package Com.example.FileWriter;  
  2.   
  3. import java.io.BufferedWriter;  
  4. import java.io.FileNotFoundException;  
  5. import java.io.FileWriter;  
  6. import java.io.IOException;  
  7.   
  8. public class Main {  
  9.   
  10.     public static void main(String[] args) {  
  11.         try {  
  12.             FileWriter Fileout= new FileWriter("D:\\12333.txt");  
  13.             BufferedWriter writer = new BufferedWriter(Fileout);  
  14.             writer.write("12344444444");  
  15.             writer.close();  
  16.           
  17.         } catch (IOException e) {  
  18.             // TODO Auto-generated catch block  
  19.             e.printStackTrace();  
  20.         }  
  21.   
  22.     }  
  23.   
  24. }  

读文件:

[java]  view plain  copy
  1. package Com.example;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.FileNotFoundException;  
  5. import java.io.FileReader;  
  6. import java.io.IOException;  
  7.   
  8. public class Filereader {  
  9.   
  10.     public static void main(String[] args) {  
  11.         String line=null;  
  12.         try {  
  13.               
  14.             FileReader filein =new FileReader("D:\\123.txt"); // 创建一个读文件对象  
  15.               
  16.             BufferedReader reader= new BufferedReader(filein); // 创建一个缓冲区对象reader  
  17.               
  18.             // 使用readline 读文件  
  19.             while((line=reader.readLine())!=null)  
  20.             {  
  21.                 System.out.println(line);  
  22.             }  
  23.             // 使用reader读文件  
  24.             int ch=0;  
  25.             while((ch=reader.read())!=-1)  
  26.             {  
  27.                 System.out.print((char)ch+" ");  
  28.             }  
  29.             reader.close();  
  30.               
  31.         } catch (FileNotFoundException e) {  
  32.               
  33.             e.printStackTrace();  
  34.         }catch (IOException e )  
  35.         {  
  36.             e.printStackTrace();  
  37.         }  
  38.           
  39.           
  40.           
  41.       
  42.     }  
  43.       
  44.   
  45. }  
当然如果在线程间直接进行数据传输的话可以使用PipeSender与PipeReceiver管道进行传输。

猜你喜欢

转载自blog.csdn.net/chehec2010/article/details/80360231