InputStreamReader 的構造函數提供了一個參數,用于指定通過什么編碼將讀取到的字節(jié)流轉換成字符。下面是一個例子:
/**
*讀取指定的文本文件,并返回內容
*
*@parampath文件路徑
*@paramcharset文件編碼
*
*@return文件內容
*
*@throwsIOException如果文件不存在、打開失敗或讀取失敗
*/
privatestaticStringreadFile(Stringpath,Stringcharset)throwsIOException{
Stringcontent="";
BufferedReaderreader=null;
try{
reader=newBufferedReader(newInputStreamReader(newFileInputStream(path),charset));
Stringline;
while((line=reader.readLine())!=null){
content+=line+"n";
}
}finally{
if(reader!=null){
try{
reader.close();
}catch(IOExceptione){
//關閉Reader出現的異常一般不需要處理。
}
}
}
returncontent;
}
PS : 這只是一個 InputStreamReader 的用法示例。真的碰到大文件,怎么可能都讀到內存里面來?StringBuffer 都免了。
/**
*讀取指定的文本文件,并返回內容
*
*@parampath文件路徑
*@paramcharset文件編碼
*
*@return文件內容
*
*@throwsIOException如果文件不存在、打開失敗或讀取失敗
*/
privatestaticStringreadFile(Stringpath,Stringcharset)throwsIOException{
Stringcontent="";
BufferedReaderreader=null;
try{
reader=newBufferedReader(newInputStreamReader(newFileInputStream(path),charset));
Stringline;
while((line=reader.readLine())!=null){
content+=line+"n";
}
}finally{
if(reader!=null){
try{
reader.close();
}catch(IOExceptione){
//關閉Reader出現的異常一般不需要處理。
}
}
}
returncontent;
}
PS : 這只是一個 InputStreamReader 的用法示例。真的碰到大文件,怎么可能都讀到內存里面來?StringBuffer 都免了。