Android getAssets.open()vs Java文件方法,日志打印字符串问题

Android getAssets.open()vs Java文件方法,日志打印字符串问题,java,android,file,binaryfiles,Java,Android,File,Binaryfiles,我正在解析一个二进制文件。我用java做的时候没有遇到任何问题 File file= new File("c:/xyz.bin"); DataInputStream di= new DataInputStream(new FileInputStream(file)); BufferedInputStream bin= new BufferedInputStream(dataIStream); byte[] byteArray= new byte[bin.available()]; bin.rea

我正在解析一个二进制文件。我用java做的时候没有遇到任何问题

File file= new File("c:/xyz.bin");
DataInputStream di= new DataInputStream(new FileInputStream(file));
BufferedInputStream bin= new BufferedInputStream(dataIStream);
byte[] byteArray= new byte[bin.available()];
bin.read(byteArray);
我正在使用parserClass根据需要解析“byteArray”。 将子字节分配给类“someClass”的不同字节数组成员,并在打印时使用自定义转换器将字节数组转换为字符串

System.out.println("Name: "+Converter.String(
        someClass.getFileName()));
System.out.println("Num: "+someClass.getInteger());
名称:文件名 总数:2

一切正常

但当我在安卓系统中试用时:

String fileName= "xyz.bin";
InputStream in= getAssets().open(fileName);
BufferedInputStream bin= new BufferedInputStream(new DataInputStream(in));
byte[] byteArray= new byte[bin.available()];
bin.read(byteArray);
我使用的是相同的解析器。 我在获取值并将其打印到日志中时遇到问题,如

String name = Converter.String(someClass.getFileName())
Log.i("File name: ", name);
Log.i("Number: ", String.valueOf(someClass.getInteger()));
这是我得到的日志 文件名:���������������� 编号:0

是因为getAssets.open()对二进制文件的处理方式不同吗?我看不出哪里出了问题。这两个代码之间的唯一区别是,在java中我使用“File”,在Android中我使用“getAssets.open()”方法