Android的FileInputStream问题

时间:2015-01-29 07:40:50

标签: android string fileinputstream

我是ADK的新手。最近我写了一个程序来获取字符串     其他设备。除了中文字符串外,没关系。任何人都可以     有助于解决这个问题吗?

my codes look like this
mFileDescriptor = mUsbManager.openAccessory(mAccessory);

FileDescriptor fd = mFileDescriptor.getFileDescriptor();

mInputStream = new FileInputStream(fd);

byte[] b = new byte[512];
int n;
String str;

while ((n = mInputStream.read(b)) != -1) 
{
......
str = (new String(b, 0, n, Charset.forName("UTF-8")));
......
}

1 个答案:

答案 0 :(得分:0)

中文语言在Unicode中表示为多字节字符。因此,要正确阅读它,您需要使用能够理解和解释多字节字符编码概念的特定读取器对象。

基本上,你需要做这样的事情:

try {
    BufferedReader bufReader = new BufferedReader(
        new InputStreamReader(inputstream,Charset.forName("UTF-8")));
    String line = null;
    while ((line= bufReader.readLine())!= null) {
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
}