/**
* 以字符为单位读取文件,常用于读文本,数字等类型的文件
*/
public static String readTxtFile(String CURENO) {
String url = resultfilePath + CURENO + ".txt"; //文件路径
File file = new File(url);
Reader reader = null;
StringBuffer buffer = new StringBuffer();
try {
//一次读一个字符
reader = new InputStreamReader(new FileInputStream(file));
int tempchar;
try {
while((tempchar = reader.read())!=-1) {
// 对于windows下,\r\n这两个字符在一起时,表示一个换行。
// 但如果这两个字符分开显示时,会换两次行。
// 因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。
if(((char)tempchar)!='\r') {
buffer.append((char)tempchar);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}catch(FileNotFoundException e) {
e.printStackTrace();
}
try {
//一次读多个字符
char[] tempchars = new char[30];
int charread = 0;
reader = new InputStreamReader(new FileInputStream(file));
// 读入多个字符到字符数组中,charread为一次读取字符数
while((charread = reader.read(tempchars))!=-1) {
// 同样屏蔽掉\r不显示
if((charread == tempchars.length)&&(tempchars[tempchars.length-1]!='\r')) {
buffer.append(tempchars);
}else {
for(int i = 0;i < charread;i++) {
if(tempchars[i] == '\r') {
continue;
}else {
buffer.append(tempchars[i]);
}
}
}
}
}catch(Exception e1) {
e1.printStackTrace();
}finally {
if (reader != null)
try {
reader.close();
}catch(IOException e1) {
}
}
return buffer.toString();
}
参考来源:https://blog.youkuaiyun.com/zs520ct/article/details/72231674