在Java中将字节流转换为字符流

Ran*_*ku' 2 java arrays encoding character stream

是否有一个类可以通过指定编码,将字节流提供给它并从中获取字符流来创建它?重点是我想通过不同时在内存中同时拥有整个字节流数据和整个字符流数据来节省内存.

就像是:

Something s = new Something("utf-8");
s.write(buffer, 0, buffer.length); // it converts the bytes directly to characters internally, so we don't store both
// ... several more s.write() calls
s.close(); // or not needed

String text = s.getString();
// or
char[] text = s.getCharArray();
Run Code Online (Sandbox Code Playgroud)

那是什么Something

Poi*_*nty 7

你在找ByteArrayInputStream?然后,您可以将其包装在a中,InputStreamReader并从原始字节数组中读取字符.

A ByteArrayInputStream允许您从字节数组"流".如果你把它包装成一个InputStreamReader你可以读取字符.将InputStreamReader让你规定的字符编码.

如果你想直接从输入的字节源开始,那么你可以构造适当的InputStream类(FileInputStream例如),然后将其包装在一个InputStreamReader.