io文件读写

xiaoxiao2021-02-28  41

字节流:

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

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 package Com.example.FileWriter;    import java.io.BufferedWriter;  import java.io.FileNotFoundException;  import java.io.FileWriter;  import java.io.IOException;    public class Main {        public static void main(String[] args) {          try {              FileWriter Fileout= new FileWriter("D:\\12333.txt");              BufferedWriter writer = new BufferedWriter(Fileout);              writer.write("12344444444");              writer.close();                    } catch (IOException e) {              // TODO Auto-generated catch block              e.printStackTrace();          }        }    }   读文件:

[java]  view plain  copy package Com.example;    import java.io.BufferedReader;  import java.io.FileNotFoundException;  import java.io.FileReader;  import java.io.IOException;    public class Filereader {        public static void main(String[] args) {          String line=null;          try {                            FileReader filein =new FileReader("D:\\123.txt"); // 创建一个读文件对象                            BufferedReader reader= new BufferedReader(filein); // 创建一个缓冲区对象reader                            // 使用readline 读文件              while((line=reader.readLine())!=null)              {                  System.out.println(line);              }              // 使用reader读文件              int ch=0;              while((ch=reader.read())!=-1)              {                  System.out.print((char)ch+" ");              }              reader.close();                        } catch (FileNotFoundException e) {                            e.printStackTrace();          }catch (IOException e )          {              e.printStackTrace();          }                                          }          }   当然如果在线程间直接进行数据传输的话可以使用PipeSender与PipeReceiver管道进行传输。
转载请注明原文地址: https://www.6miu.com/read-2614091.html

最新回复(0)