1、下面一段代碼的功能是把一個txt文件的內容賦值給字符串
package com.yuzhiyun;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
public class ReadFile {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
System.out.println(readFile( new File("a.txt")));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
static String readFile(File file) throws IOException {
//抽象類輸入流
InputStream in = null;
//抽象類
Reader reader = null;
// 從字符輸入流中讀取文本,緩衝各個字符,從而實現字符、數組和行的高效讀取。 可以指定緩衝區的大小,或者可使用默認的大小。
BufferedReader bufferedReader = null;
try {
//獲取文件輸入流
in = new FileInputStream(file);
//InputStreamReader 字節流通向字符流的橋樑
reader = new InputStreamReader(in,"UTF-8");
bufferedReader = new BufferedReader(reader);
String line = null;
StringBuffer result = new StringBuffer();
while((line=bufferedReader.readLine())!=null){
result.append(line);
result.append("\n");
}
return result.toString();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(in!=null)
in.close();
}
return null;
}
}
2、對象適配器的體現
需要注意的是,InputStreamReader是間接持有InputStream的,InputStreamReader作爲適配器,搭建了從輸入流到字符流的通道。