JAVA读取文本文件内容实例代码
java读取文本文件内容
今天写代码写着要调试一个很长的字符串,就用idea新建了text文本,存放长字符串的内容。结果发现读取文本文件内容的java代码不怎么会写了,果然是面向百度编程,面向controlc或者controlv编程,尴尬。
最终的代码如下:
publicstaticStringreadFileContent(StringfileName){
Filefile=newFile(fileName);
BufferedReaderreader=null;
StringBuffersbf=newStringBuffer();
try{
reader=newBufferedReader(newFileReader(file));
StringtempStr;
while((tempStr=reader.readLine())!=null){
sbf.append(tempStr);
}
reader.close();
returnsbf.toString();
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(reader!=null){
try{
reader.close();
}catch(IOExceptione1){
e1.printStackTrace();
}
}
}
returnsbf.toString();
}
留个小问题,这种方式只能读取普通的文本文件,对于二进制之类的文件,是不可以的,那应该如何做呢,嗯,等碰到这样场景的需求再记录下来吧。
Java一次读取文本文件所有内容
我们做文本处理的时候的最常用的就是读写文件了,尤其是读取文件,不论是什么文件,我都倾向于一次性将文本的原始内容直接读取到内存中再做处理,当然,这需要你有一台大内存的机器,内存不够者……可以一次读取少部分内容,分多次读取。
读取文件效率最快的方法就是一次全读进来,很多人用readline()之类的方法,可能需要反复访问文件,而且每次readline()都会调用编码转换,降低了速度,所以,在已知编码的情况下,按字节流方式先将文件都读入内存,再一次性编码转换是最快的方式,典型的代码如下:
publicStringreadToString(StringfileName){
Stringencoding="UTF-8";
Filefile=newFile(fileName);
Longfilelength=file.length();
byte[]filecontent=newbyte[filelength.intValue()];
try{
FileInputStreamin=newFileInputStream(file);
in.read(filecontent);
in.close();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
try{
returnnewString(filecontent,encoding);
}catch(UnsupportedEncodingExceptione){
System.err.println("TheOSdoesnotsupport"+encoding);
e.printStackTrace();
returnnull;
}
}
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。