问题描述
传2个参数进去 返回changEncoding该怎么写呢 或者谁给个思路先谢了changEncoding(Inputstream i,String charater){}
解决方案
有个现成的类的引用public class InputStreamReaderextends ReaderInputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,否则可能接受平台默认的字符集。 每次调用 InputStreamReader 中的一个 read() 方法都会导致从基础输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从基础流读取更多的字节,使其超过满足当前读取操作所需的字节。 为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如: BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); BufferedReader in = new BufferedReader(new InputStreamReader(i)); //这样就能读取相应编码的字符了
解决方案二:
这个 java提供的库函数就有相关的实现啊 如果你要想看源代码就直接下载java的源码读读咯 我这里提供一种思路是首先要有各个编码的字库文件,然后就是读取字节进行解码的过程了,这里如果多字节字符的话,连续的读取需要自己设置分割,如果是宽字符的话,字节检索简析就行了。一般字库都是有索引的!
解决方案三:
你在用流在读取的时候可能还不涉及到编码和解码的问题,当你需要把用流读取出来的byte装换成字符的时候才会涉及到解码;InputStreamReader就是把字节流读取装换成字符读取的一种方式,所以InputStreamReader的构造方法提供了字符集参数:InputStreamReader(InputStream in, String charsetName)
解决方案四:
哥们,你这个题目是我见过最有诗意的问题。压根没看明白你想说啥?另外 你能解释一下啥是changEncoding?