java - 如何将十六进制值写入二进制文件

标签 java

我目前正在尝试为视频游戏构建一个保存编辑器。无论如何,我想出了如何使用输出流而不是编写器写入二进制文件,我遇到了问题。我正在尝试覆盖某些十六进制值,但每次我尝试最终都会替换整个文件,这可能有一个简单的解释,但我还想了解如何替换十六进制值并转换十六进制值(例如 5acd) from a string 只给我字符串的字节数据。这就是我正在做的事情:

    String textToWrite = inputField.getText();
    byte[] charsToWrite = textToWrite.getBytes();

    FileOutputStream out = new FileOutputStream(theFile);


    out.write(charsToWrite, 23, charsToWrite.length)

最佳答案

使用 RandomAccessFile 。这有您正在寻找的方法。 FileOutputStream 只允许您覆盖或追加。但是,请注意,正如 Murali VP 所回避的那样,这只会允许您执行直接替换(逐字节),而不能删除或插入字节。

关于java - 如何将十六进制值写入二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8453990/

相关文章:

java - 如何创建一个在两种泛型类型上运行的可迭代泛型类?

java - 用 Java 创建可执行安装程序

具有子图同构问题支持的 Java 库?

java - 为什么 Collat​​z 猜想程序不适用于 Java 中的大整数

java - 选择选项后页面自动刷新

Java/Kotlin- Akka Stream Source.reduce 在 Source 中为 null 时不起作用

java - 使用 hibernate 获取一对多映射中的更新行

java - 实例字段的线程安全

java - 对使用 getBean ("myService"的依赖项的类进行单元测试

java - 在 Java 中使用数组创建 Stack 类