我目前正在尝试为视频游戏构建一个保存编辑器。无论如何,我想出了如何使用输出流而不是编写器写入二进制文件,我遇到了问题。我正在尝试覆盖某些十六进制值,但每次我尝试最终都会替换整个文件,这可能有一个简单的解释,但我还想了解如何替换十六进制值并转换十六进制值(例如 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/