手记

java读文件

package text;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;

public class Text {

public static void main(String[] args) {

    readFileByLines();
}
/** 
 * 按行读文件 
 */  
public static void readFileByLines() {
    String fileName = "D:\\text.txt";  
    File file = new File(fileName);  
    BufferedReader reader = null;  
    try {   
        reader = new BufferedReader(new FileReader(file));  
        String tempString = null;  
        // 每次读一行,直到空  
        while ((tempString = reader.readLine()) != null) {  
            System.out.println("tempString content : " + tempString);  
        }  
        reader.close();  
    } catch (IOException e) {  
        e.printStackTrace();  
    } finally {  
        if (reader != null) {  
            try {  
                reader.close();  
            } catch (IOException e1) {  
            }  
        }  
    }  
}  

/** 
 * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 
 */  
public static void readFileByBytes(String fileName) {  
    File file = new File(fileName);  
    InputStream in = null;  
    try {  
        System.out.println("以字节为单位读取文件内容,一次读一个字节:");  
        // 一次读一个字节  
        in = new FileInputStream(file);  
        int tempbyte;  
        while ((tempbyte = in.read())!=-1) {  
            System.out.println(tempbyte);  
        }  
    } catch (Exception e) {  
        // TODO: handle exception  
        e.printStackTrace();  
    }  

    try {  
        System.out.println("以字节为单位读取文件内容,一次读多个字节:");  
        // 一次读多个字节  
        byte[] tempbytes = new byte[100];  
        int byteread = 0;  
        in = new FileInputStream(fileName);  
        Text.showAvailableBytes(in);  
        // 读入多个字节到字节数组中,byteread为一次读入的字节数  
        while ((byteread = in.read(tempbytes)) != -1) {  
            System.out.write(tempbytes, 0, byteread);//好方法,第一个参数是数组,第二个参数是开始位置,第三个参数是长度  
        }  
    } catch (Exception e1) {  
        e1.printStackTrace();  
    } finally {  
        if (in != null) {  
            try {  
                in.close();  
            } catch (IOException e1) {  
            }  
        }  
    }  
}  

/** 
 * 显示输入流中还剩的字节数 
 */  
private static void showAvailableBytes(InputStream in) {  
    try {  
        System.out.println("当前字节输入流中的字节数为:" + in.available());  
    } catch (IOException e) {  
        e.printStackTrace();  
    }  
} 

}

0人推荐
随时随地看视频
慕课网APP

热门评论

摘抄。

查看全部评论