java 中 IO 文件操作 是 java 中一个十分重要的部分,在金融证券公司的笔试中常常会遇到对文件的操作。今天这篇文章讲的是简单的文本文件按行读取并输出到控制台。
package com.lsl.readAndwrite;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class ReadAndOut {public static void main(String[] args) throws IOException {
/*
* 1. 打开一个文件 file
* 2.new 一个 InputStreamReader←FileInputStream←file
* 3. 用 BufferedReader(←InputStreamReader)的 readLine()方法读取
* */
File f = new File("D:\\book\\1.txt");
InputStreamReader readf = new InputStreamReader(new FileInputStream(f),"GBK");
// 有可能出现乱码
BufferedReader bfReader = new BufferedReader(readf);
String txtline = null;
while ((txtline = bfReader.readLine()) != null) {System.out.println(txtline);
}
bfReader.close();};
}
结果截图:
乱码问题:
FileReader 得到的是字符,所以一定是已经把字节根据某种编码识别成了字符了
而 FileReader 使用的编码方式是 Charset.defaultCharset()的返回值,如果是中文的操作系统,就是 GBK
FileReader 是不能手动设置编码方式的,为了使用其他的编码方式,只能使用 InputStreamReader 来代替
用 InputStreamReader 来读取