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

如何在Java中将二进制数据输出到文件?

艾璞瑜
2023-03-14
问题内容

我正在尝试将数据以二进制格式写入文件以进行压缩。数据完全由浮点组成,因此我决定将数据量化为0到65535之间的整数,以便可以将数据写入两位无符号整数并最终节省空间。但是,我需要将量化数据以二进制而不是人类可读的Ascii输出到文件中。

目前这就是我在做什么

@param outputFile包含已量化数据的文件作为.txt文件中的字符串

public void generateBinaryRioFile(String materialLibrary,
        String outputFile, String group, String mtlAux) {

    try {

        // Create file
        FileWriter fileStream = new FileWriter(outputFile);
        try {

            BufferedReader br = new BufferedReader(new FileReader(new File(
                    "idx.txt")));

            while ((line = br.readLine()) != null) {
                writer.write(line + "\n");
            }
            try {
                br.close();

            } catch (FileNotFoundException e) {
                e.getMessage();
            } catch (IOException e) {
                e.printStackTrace();
            }           BufferedWriter writer = new BufferedWriter(fileStream);

但是,这会以人类可读的字符串形式写入文件。我需要将其写入二进制数据。用Java如何做到这一点?


问题答案:

也许这个片段会有所帮助。

 int i = 42;
 DataOutputStream os = new DataOutputStream(new FileOutputStream("C:\\binout.dat"));
 os.writeInt(i);
 os.close();


 类似资料:
  • 问题内容: 我在Python中有一个浮点值列表: 我想使用IEEE 32位编码将这些值写到二进制文件中。用Python做到这一点的最佳方法是什么?我的列表实际上包含大约200 MB的数据,因此最好“不要太慢”。 由于有5个值,所以我只想要一个20字节的文件作为输出。 问题答案: 亚历克斯绝对是对的,用这种方法做起来更有效: 然后像这样读取数组: 如果您事先知道项目数(例如,从文件大小或其他某种机制

  • 问题内容: 我有两个用Java编写的应用程序,它们通过网络使用XML消息相互通信。我在接收端使用了SAX解析器,以从消息中获取数据。要求之一是将二进制数据嵌入XML消息中,但是SAX不喜欢这样。有谁知道如何做到这一点? 问题答案: XML是如此多才多艺… XML就像暴力-如果它不能解决问题,则说明你使用的不够多。 编辑: 顺便说一句:Base64 + CDATA可能是最好的解决方案

  • 问题内容: Netbeans仔细地将Logger.getLogger(this.getClass()。getName())。log(Level。[…]语句撒到catch块中。现在,我想将它们全部指向一个文件(并指向控制台)。 每个日志教程(只有我这样)都告诉我如何获取特定的日志记录器以输出到文件中,但是我认为有比修复每个自动生成的日志记录语句更好的方法了?为某种类型的根记录程序设置处理程序? 问题

  • 问题内容: 在python 2.x中,我可以这样做: 但是现在,我得到了。我应该使用一些秘密编码吗? 问题答案: 更好的方法:

  • 问题内容: 我尝试使用go-bindata和packr,但是这些软件包没有显示如何将SQLite数据库文件打包为二进制文件。 我不需要以任何方式更新数据库,我只想在启动时从中读取数据。 如何将SQLite数据库文件嵌入Go二进制文件中? 问题答案: SQLite驱动程序无法从内存(例如,从字节片)读取数据库文件。但是您可以将数据写入临时文件,然后打开该文件: 您可以使用以下方式将数据库写入: 如果

  • 问题内容: 我在完全冻结JVM的应用程序中发现一个错误。产生的stacktrace将为开发人员提供有价值的信息,我想从Java控制台中检索它。JVM崩溃时,控制台被冻结,我无法再复制包含的文本。 是否可以将Java控制台直接通过管道传输到文件,或通过其他某种方式访问​​Java应用程序的控制台输出? 更新:我忘记提了,没有更改代码。我是手动测试仪。 更新2:这是在Windows XP下,它实际上是