Java中读取文件转换为字符串的方法
方式一
/**
以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
当然也是可以读字符串的。
*/
/*貌似是说网络环境中比较复杂,每次传过来的字符是定长的,用这种方式?*/ publicStringreadString1() { try { //FileInputStream用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用FileReader。 FileInputStreaminStream=this.openFileInput(FILE_NAME); ByteArrayOutputStreambos=newByteArrayOutputStream(); byte[]buffer=newbyte[1024]; intlength=-1; while((length=inStream.read(buffer)!=-1) { bos.write(buffer,0,length); //.write方法SDK的解释是Writescountbytesfromthebytearraybufferstartingatoffsetindextothisstream. //当流关闭以后内容依然存在 } bos.close(); inStream.close(); returnbos.toString(); //为什么不一次性把buffer得大小取出来呢?为什么还要写入到bos中呢?returnnew(buffer,"UTF-8")不更好么? //returnnewString(bos.toByteArray(),"UTF-8"); } }
方式二
//有人说了FileReader读字符串更好,那么就用FileReader吧
//每次读一个是不是效率有点低了? privatestaticStringreadString2() { StringBufferstr=newStringBuffer(""); Filefile=newFile(FILE_IN); try{ FileReaderfr=newFileReader(file); intch=0; while((ch=fr.read())!=-1) { System.out.print((char)ch+""); } fr.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); System.out.println("Filereader出错"); } returnstr.toString(); }
方式三
/按字节读取字符串/
/*个人感觉最好的方式,(一次读完)读字节就读字节吧,读完转码一次不就好了*/
privatestaticStringreadString3()
{
Stringstr=""; Filefile=newFile(FILE_IN); try{ FileInputStreamin=newFileInputStream(file); //size为字串的长度,这里一次性读完 intsize=in.available(); byte[]buffer=newbyte[size]; in.read(buffer); in.close(); str=newString(buffer,"GB2312"); }catch(IOExceptione){ //TODOAuto-generatedcatchblock returnnull; e.printStackTrace(); } returnstr;
}
方式四
/InputStreamReader+BufferedReader读取字符串,InputStreamReader类是从字节流到字符流的桥梁/
/*按行读对于要处理的格式化数据是一种读取的好方式*/ privatestaticStringreadString4() { intlen=0; StringBufferstr=newStringBuffer(""); Filefile=newFile(FILE_IN); try{ FileInputStreamis=newFileInputStream(file); InputStreamReaderisr=newInputStreamReader(is); BufferedReaderin=newBufferedReader(isr); Stringline=null; while((line=in.readLine())!=null) { if(len!=0)//处理换行符的问题 { str.append("\r\n"+line); } else { str.append(line); } len++; } in.close(); is.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnstr.toString(); }
路要一步一步走,记住自己走过的路,不再犯同样的错误,才是真正的成长!欢迎指点、交流。
以上这篇Java中读取文件转换为字符串的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。