java的io流详解

1,I/O流分类

从内存里读叫做输入流:inputStream
将内容写入到指定目录里叫做输出流:outputStream

2,java IO流四大抽象类

java.io.InputStream 字节输入流
java.io.OutputStream 字节输出流
java.io.Reader 字符输入流
java.io.Writer 字符输出流

在java中只要"类名"以Stream结尾的都是字节流。以"Reader/Writer"结尾的都是字符流 。

3, BufferedReader

BufferedReader 是一个缓冲字符输入流,该流可以对 FileRead 进行包装,提供一个缓存数组,一次将数据按照一定规则读取到缓存区中,输入流每次读取文件数据时都需要将数据进行字符编码,而 BufferedReader 的出现,降低了输入流访问数据源的次数,将一定大小的数据一次读取到缓存区并进行字符编码,从而提高 IO 的效率。
BufferedReader 从字符输入流中读取文本,缓冲字符,以便有效地读取字符、数组和行。可以指定缓冲区大小,也可以使用默认大小(8192)。对于大多数用途,默认值足够大。
一般来说,对Reader发出的每个读请求都会导致对底层字符或字节流发出相应的读请求。因此,建议将 BufferedReader 封装在任何 read() 操作可能代价高昂的 Reader(如FileReaders和InputStreamReaders ) 周围。
例如:

BufferedReader in = new BufferedReader(new FileReader("foo.in"));

4,常用的代码

1,读取文件、将文件写入到另一个文件里
//1,读取文件、将文件写入到另一个文件里
           FileInputStream fis = new FileInputStream("/home/jing/1.txt");
           FileOutputStream fisR = new FileOutputStream("/home/jing/2.txt",false);
           byte[] b = new byte[1024];
           int len = 0;
            while((len = fis.read(b)) != -1){
                fisR.write(b,0,len);
                fis.close();
            }
2,BufferedReader读取字符流
//2,BufferedReader读取字符流
            FileReader fileReader = new FileReader("/home/jing/1.txt");
            BufferedReader br = new BufferedReader(fileReader);
            String str = "";
            while((str = br.readLine()) != null){
                System.out.println(str);
            }
            br.close();
3,BufferedReader读取字符流, InputStreamReader将字节流转化为字符流
//3,BufferedReader读取字符流 InputStreamReader将字节流转化为字符流
            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("/home/jing/1.txt")));
            String str = "";
            while((str = br.readLine()) != null){
                System.out.println(str);
            }
            br.close();

你可能感兴趣的:(java,chrome,开发语言)