将文件流FileInputStream转换为字符流string的步骤

下面有个能成功转换的。我想知道还有其他的方法么?最好转换后能简单讲解一下。或者稍微讲解一下下面这个。谢谢!!
1、FileInputStream -> InputStreamReader
FileInputStream fInputStream = new FileInputStream(fileName);
InputStreamReader inputStreamReader = new InputStreamReader(fInputStream, code);
2、InputStreamReader -> BufferedReader
BufferedReader in = new BufferedReader(inputStreamReader);
3、BufferedReader -> StringBuffer
StringBuffer sBuffer = new StringBuffer();
sBuffer.append(in.readLine() + "\n");-------这句是什么意思
4、StringBuffer -> String
sBuffer.toString();

第1个回答  推荐于2016-05-22
sBuffer.append(in.readLine() + "\n");-------这句是什么意思
将一行的内容添加到sbuffer的末尾,在附加一个换行符

其他方法:nio2的 List<String> lines = Files.readAllLines( path, Charset.defaultCharset())追问

还有一种方法将文件流FileInputStream转换成byte[]数组FileInputStream.read(byte[] buffer,int byteOffset,int byteCount)函数将数据存储到byte[]数组,再转换成stringString display = EncodingUtils.getString(byte[]data,string charset);这个与上面的有上面区别,就是各有什么优缺点或者应用领域的不同?

追答

一行代码就解决的问题变成多行了。

java.nio.file.Files也提供了一个 byte[] allbytes = Files.readAllBytes(path)方法,然后 new String(allbytes, Charset.defaultCharset())即可。

本回答被提问者采纳
第2个回答  2015-11-20
无法直接转换。但是可以先将FileInputStream转成StringBuffer,再从StringBuffer转到String。
按照以下流程,可以转换成功:
1、FileInputStream -> InputStreamReader
FileInputStream fInputStream = new FileInputStream(fileName);
InputStreamReader inputStreamReader = new InputStreamReader(fInputStream, code);
2、InputStreamReader -> BufferedReader
BufferedReader in = new BufferedReader(inputStreamReader);
3、BufferedReader -> StringBuffer
StringBuffer sBuffer = new StringBuffer();
sBuffer.append(in.readLine() + "\n");
4、StringBuffer -> String
sBuffer.toString();
第3个回答  2012-11-27
用包装类啊!
第4个回答  推荐于2018-03-13
1、FileInputStream -> InputStreamReader
FileInputStream fInputStream = new FileInputStream(fileName);
InputStreamReader inputStreamReader = new InputStreamReader(fInputStream, code);
InputStreamReader 构造器的使用需要一个InputStream的参数,子类可以赋值给父类使用,所以使用FileInputstream对象代替InputStream对象。
2、InputStreamReader -> BufferedReader
BufferedReader in = new BufferedReader(inputStreamReader);
同上原理:
BufferedReader 构造器的使用需要一个Reader类型的参数,子类可以赋值给父类使用,所以使用InputstreamReader对象代替Reader对象。

3、BufferedReader -> StringBuffer
StringBuffer sBuffer = new StringBuffer();
sBuffer.append(in.readLine() + "\n");-------这句是什么意思
"\n"是一个换行符。表示换行相当于回车键。
4、StringBuffer -> String
sBuffer.toString();
把sBuffer转化为String类型。本回答被网友采纳
相似回答