import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
public class InputStreamTool {
/**
* 使用指定编码,读取输入流中的所有内容,并以字符传的方式返回
* @param is 需要读取的输入流
* @param charsetName 指定的字符编码格式
* @return 输入流中的所有内容
* @throws IOException
*/
public static String getString(InputStream is,String charsetName) throws IOException {
// 使用字节流和字符编码创建字符流
Reader reader = new InputStreamReader(is,charsetName);
// 创建一个缓冲区(512个字符的缓冲大小)以提高读取速度
BufferedReader br = new BufferedReader(reader,512);
// 用于创建String的StringBuider对象,接受流中的结果
StringBuilder sb = new StringBuilder();
int value;
// 一个一个字符开始读取
while ((value = br.read()) != -1) {
sb.append((char)value);
}
return sb.toString();
}
/**
* main方法,测试代码
* @param args
*/
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("E:/test.txt")) {
String str = getString(fis,"UTF-8");
System.out.println(str);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}