Android的FileInputStream问题
我是ADK的新手。最近我写了一个程序,从中获取字符串 其他设备。除了中文字符串外,没关系。谁能 是否帮助解决此问题Android的FileInputStream问题,android,string,fileinputstream,Android,String,Fileinputstream,我是ADK的新手。最近我写了一个程序,从中获取字符串 其他设备。除了中文字符串外,没关系。谁能 是否帮助解决此问题 my codes look like this mFileDescriptor = mUsbManager.openAccessory(mAccessory); FileDescriptor fd = mFileDescriptor.getFileDescriptor(); mInputStream = new FileInputStream(fd); byte[] b =
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")));
......
}
中文用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();
}
谢谢你的回复。我已经修改过了,但仍然不起作用。我做错什么了吗?mFileDescriptor=mUsbManager.openAccessorymAccessory;如果mFileDescriptor!=null{FileDescriptor fd=mFileDescriptor.getFileDescriptor;mInputStream=new FileInputStreamfd;BufferedReader bufReader=new BufferedReadernew InputStreamReaderInputStream,Charset.forNameUTF-8;而str=bufReader.readLine!=null{}啊,我看到你正在使用AOA处理USB附件。好吧,UsbManager的InputStream还有一些问题等着你。虽然这个流在某种程度上符合流对象的JAVA规范,但根据我的经验,它在某种程度上不是包装普通磁盘文件的普通InputStream对象。请先尝试将从该输入流读取的数据写入文件,一旦文件中有大量数据,请尝试使用上述方法读取文件。非常感谢您的帮助。我将尝试先将字符串写入文件。