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中读取文件转换为字符串的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。