ITPub博客

首页 > IT职业 > IT职场 > java读文件

java读文件

IT职场 作者:darkfiber 时间:2021-09-09 09:12:41 0 删除 编辑

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();  
    }  
} 

}

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4399/viewspace-2800621/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-12

  • 博文量
    93
  • 访问量
    527