主要分为字节读取和字符读取, 字节读取可以一个一个读取和字节数组读取, 字符读取同样之, 字符读取适合文本读取, 字节读取皆可以
这里直接上代码, 读取文件的 9 个小 demo
- package com.io;
- import org.junit.Test;
- import java.io.*;
- public class FileTest {
- //1, 字节流字节一个一个读取
- @Test
- public void test() throws IOException{
- InputStream fis = new FileInputStream(new File("E:\\project_test\\src\\com\\io\\readme.txt"));
- int len;
- // 按字节一个一个读取
- while ((len = fis.read())!=-1){
- System.out.print((char)len+"\t");
- };
- fis.close();
- }
- // 输出结果 h e l l o w o r l d
- //2, 字节流字节数组读取
- @Test
- public void test1() throws IOException{
- InputStream fis = new FileInputStream(new File("E:\\project_test\\src\\com\\io\\readme.txt"));
- byte[] bytes = new byte[2];
- int len ;
- // 按字节数组读取 bytes 存储的是读取的数据
- while ((len = fis.read(bytes))!=-1){
- System.out.print((new String(bytes))+"\t");
- };
- fis.close();
- }
- // 输出结果 he ll ow or ld
- //3, 缓冲字节流字节一个一个读取
- @Test
- public void test2() throws IOException{
- BufferedInputStream bis = new BufferedInputStream(new FileInputStream(new File("E:\\project_test\\src\\com\\io\\readme.txt")));
- int len ;
- while ((len = bis.read())!=-1){
- System.out.print((char)len+"\t");
- };
- bis.close();
- }
- // 输出结果 h e l l o w o r l d
- //4, 缓冲字节流字节数组读取
- @Test
- public void test3() throws IOException{
- BufferedInputStream bis = new BufferedInputStream(new FileInputStream(new File("E:\\project_test\\src\\com\\io\\readme.txt")));
- byte[] bytes = new byte[3];
- int len ;
- // 按字节数组读取 bytes 存储的是读取的数据
- while ((len = bis.read(bytes))!=-1){
- System.out.print(new String(bytes)+"\t");
- };
- bis.close();
- }
- // 输出结果 hel low orl drl
- //5, 字符流一个一个读取
- @Test
- public void test4() throws IOException{
- InputStreamReader isr = new InputStreamReader(new FileInputStream(new File("E:\\project_test\\src\\com\\io\\readme.txt")));
- int len ;
- // 按字节数组读取 bytes 存储的是读取的数据
- while ((len = isr.read())!=-1){
- System.out.print((char)len+"\t");
- };
- isr.close();
- }
- //6, 字符流字符数组读取
- @Test
- public void test5() throws IOException{
- InputStreamReader isr = new InputStreamReader(new FileInputStream(new File("E:\\project_test\\src\\com\\io\\readme.txt")));
- char[] chars = new char[3];
- int len ;
- // 按字节数组读取 bytes 存储的是读取的数据
- while ((len = isr.read(chars))!=-1){
- System.out.print(new String(chars)+"\t");
- };
- isr.close();
- }
- //7, 缓冲字符流字符一个一个读取
- @Test
- public void test6() throws IOException{
- BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File("E:\\project_test\\src\\com\\io\\readme.txt"))));
- int len ;
- // 按字节数组读取 bytes 存储的是读取的数据
- while ((len = br.read())!=-1){
- System.out.print((char)len+"\t");
- };
- br.close();
- }
- //8, 缓冲字符流字符数组读取
- @Test
- public void test7() throws IOException{
- BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File("E:\\project_test\\src\\com\\io\\readme.txt"))));
- char[] chars = new char[3];
- int len ;
- // 按字节数组读取 bytes 存储的是读取的数据
- while ((len = br.read(chars))!=-1){
- System.out.print(new String(chars)+"\t");
- };
- br.close();
- }
- //9, 缓冲字符流按行读取
- @Test
- public void test8() throws IOException{
- BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File("E:\\project_test\\src\\com\\io\\readme.txt"))));
- // 按字节数组读取 bytes 存储的是读取的数据
- String str;
- while ( (str = br.readLine())!=null){
- System.out.print(str+"\t");
- };
- br.close();
- }
- }
待更..............
来源: http://www.bubuko.com/infodetail-3051688.html