import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
public class FileUtil {
// 使用文件流可设置编码格式
private FileInputStream file;
/**
* 根据文件路径读取文件
* @param path
*/
public FileUtil(String path){
try {
file = new FileInputStream(path);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
/**
* 读取流中的文件数据
* @return
*/
private String readTxtFile(){
// 非线程安全类,建议多线程中用StringBuffer
StringBuilder result = new StringBuilder();
// 创建字符读取流
BufferedReader br = null;
InputStreamReader in = null;
try {
// 设置编码格式为GBK,防治中文乱码
in = new InputStreamReader(file,"GBK");
br = new BufferedReader(in);
String s = null;
boolean firstLine = true;
while((s = br.readLine()) != null){
if(firstLine){
firstLine = false;
}else {
result.append("\n");
}
result.append(s);
}
return result.toString();
} catch (FileNotFoundException e) {
e.printStackTrace();
return "file FileNotFound error!";
} catch (IOException e) {
e.printStackTrace();
return "file read error!";
}finally{
try {
if(null != br){
// 关闭输入流
br.close();
}
if(null != in){
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws IOException {
FileUtil fileUtil = new FileUtil("D:\\.m2\\fileTest.txt");
System.out.println(fileUtil.readTxtFile());
fileUtil.file.close();
}
}