当前位置: 首页 > 面试题库 >

在Java中读取C#二进制文件

贺宏富
2023-03-14
问题内容

我在C#.net中有一个程序,它使用写入1个整数和3个字符串到文件中BinaryWriter.Write()

现在,我正在用Java编程(对于Android,这是Java的新手),我必须访问以前使用C#写入文件的数据。

我尝试使用DataInputStream.readInt()DataInputStream.readUTF(),但无法获得正确的结果。我通常会得到UTFDataFormatException

java.io.UTFDataFormatException:字节21附近的输入格式错误

或者Stringint我得到的是错误的…

FileInputStream fs = new FileInputStream(strFilePath);
DataInputStream ds = new DataInputStream(fs);
int i;
String str1,str2,str3;
i=ds.readInt();
str1=ds.readUTF();
str2=ds.readUTF();
str3=ds.readUTF();
ds.close();

这样做的正确方法是什么?


问题答案:

顾名思义,BinaryWriter以二进制格式编写。.Net二进制格式非常精确,并且由于Java不是.Net语言,因此它无法读取它。您必须使用可互操作的格式。

您可以选择现有格式,例如xml或json或任何其他互操作格式。

或者,您也可以创建自己的数据,只要您的数据足够简单就可以用这种方式进行创建(这里似乎是这种情况)。只要知道您的字符串格式,只需将字符串写入文件(例如,使用StreamWriter)即可。然后从Java作为字符串读取文件并进行解析。



 类似资料:
  • 问题内容: 我有一个较长的无符号整数文件(每个64位,0.47GB文件),需要读取并存储在数组中。经过一番思考之后,由于Java中的所有内容都已签名(请纠正我,请纠正我),因此我长时间使用了该类型,我想不出更好的选择了。无论如何,仅需对数组进行排序,因此原始数字的精确值并不是最重要的。我们应该测量排序算法的效率,仅此而已。但是,当我实际要读取文件时(在下面的代码中),我遇到了砖墙。 它会一直持续下

  • 本文向大家介绍C#读取二进制文件方法分析,包括了C#读取二进制文件方法分析的使用技巧和注意事项,需要的朋友参考一下 本文较为详细的分析了C#读取二进制文件方法。分享给大家供大家参考。具体分析如下: 当想到所有文件都转换为 XML时,确实是一件好事。但是,这并非事实。仍旧还有大量的文件格式不是XML,甚至也不是ASCII。二进制文件仍然在网络中传播,储存在磁盘上,在应用程序之间传递。相比之下,在处理

  • 问题内容: 我对Go完全陌生,我试图读取一个二进制文件,一次读取一个字节或几个字节。该文档并没有多大帮助,我找不到任何教程或简单示例(顺便说一句,Google如何给他们的语言提供这样一个难以理解的名称?)。基本上,如何打开文件,然后将一些字节读入缓冲区?有什么建议吗? 问题答案: 要处理文件,该软件包是您的朋友: 在过去的文件是如何打开更多的控制,看到代替(DOC) 。 为了读取文件,有很多方法。

  • 问题内容: 我正在尝试从URLConnection读取二进制文件。当我使用文本文件对其进行测试时,它似乎可以正常工作,但对于二进制文件则不能。发送文件时,我在服务器上使用以下mime类型: 但是到目前为止,似乎没有任何效果。这是我用来接收文件的代码: 问题答案: 我就是这样

  • 问题内容: 我发现用Python读取二进制文件特别困难。你能帮我个忙吗?我需要读取此文件,在Fortran 90中,该文件很容易被读取 详细而言,文件格式为: 如何使用Python阅读?我尝试了一切,但没有成功。我是否有可能在python中使用f90程序,读取此二进制文件,然后保存需要使用的数据? 问题答案: 读取二进制文件内容,如下所示: 然后使用struct.unpack “解压缩”二进制数据

  • 问题内容: 我正在尝试在Python中读取BMP文件。我知道前两个字节表示BMP公司。接下来的4个字节是文件大小。当我执行时: 我得到: ValueError:以10为底的int()的无效文字:’F#\ x13’ 我想做的是将这四个字节读取为整数,但是Python似乎将它们读取为字符并返回一个字符串,该字符串无法转换为整数。如何正确执行此操作? 问题答案: 该方法将字节序列作为字符串返回。要将字符