java 读取文件内容到字符串 java怎么读取文件字符串
转载
方式一
Java code
?
/**
* 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
* 当然也是可以读字符串的。
*/
/* 貌似是说网络环境中比较复杂,每次传过来的字符是定长的,用这种方式?*/
public String readString1()
{
try
{
//FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader。
FileInputStream inStream= this .openFileInput(FILE_NAME);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte [] buffer= new byte [ 1024 ];
int length=- 1 ;
while ( (length = inStream.read(buffer) != - 1 )
{
bos.write(buffer, 0 ,length);
// .write方法 SDK 的解释是 Writes count bytes from the byte array buffer starting at offset index to this stream.
// 当流关闭以后内容依然存在
}
bos.close();
inStream.close();
return bos.toString();
// 为什么不一次性把buffer得大小取出来呢?为什么还要写入到bos中呢? return new(buffer,"UTF-8") 不更好么?
// return new String(bos.toByteArray(),"UTF-8");
}
}
|
方式二
Java code
?
// 有人说了 FileReader 读字符串更好,那么就用FileReader吧
// 每次读一个是不是效率有点低了?
private static String readString2()
{
StringBuffer str= new StringBuffer( "" );
File file= new File(FILE_IN);
try {
FileReader fr= new FileReader(file);
int ch = 0 ;
while ((ch = fr.read())!=- 1 )
{
System.out.print(( char )ch+ " " );
}
fr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println( "File reader出错" );
}
return str.toString();
}
|
方式三
Java code
?
/*按字节读取字符串*/
/* 个人感觉最好的方式,(一次读完)读字节就读字节吧,读完转码一次不就好了*/
private static String readString3()
{
String str= "" ;
File file= new File(FILE_IN);
try {
FileInputStream in= new FileInputStream(file);
// size 为字串的长度 ,这里一次性读完
int size=in.available();
byte [] buffer= new byte [size];
in.read(buffer);
in.close();
str= new String(buffer, "GB2312" );
} catch (IOException e) {
// TODO Auto-generated catch block
return null ;
e.printStackTrace();
}
return str;
}
|
方式四
Java code
?
/*InputStreamReader+BufferedReader读取字符串 , InputStreamReader类是从字节流到字符流的桥梁*/
/* 按行读对于要处理的格式化数据是一种读取的好方式 */
private static String readString4()
{
int len= 0 ;
StringBuffer str= new StringBuffer( "" );
File file= new File(FILE_IN);
try {
FileInputStream is= new FileInputStream(file);
InputStreamReader isr= new InputStreamReader(is);
BufferedReader in= new BufferedReader(isr);
String line= null ;
while ( (line=in.readLine())!= null )
{
if (len != 0 ) // 处理换行符的问题
{
str.append( "\r\n" +line);
}
else
{
str.append(line);
}
len++;
}
in.close();
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str.toString();
}
|
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。