我目前正在尝试为视频游戏构建一个保存编辑器。无论如何,我想出了如何用输出流写入二进制文件而不是写入我遇到问题的编写器。我试图覆盖某些十六进制值,但每次我尝试我最终替换整个文件,这可能是一个简单的解释,但我也想知道如何替换转换十六进制值的十六进制值(例如5acd)从字符串只给我字符串的字节数据。继承人我正在做的事情:
String textToWrite = inputField.getText();
byte[] charsToWrite = textToWrite.getBytes();
FileOutputStream out = new FileOutputStream(theFile);
out.write(charsToWrite, 23, charsToWrite.length)
答案 0 :(得分:1)
使用RandomAccessFile
。这有您正在寻找的方法。 FileOutputStream
只允许您覆盖或追加。但是,请注意,正如Murali VP所提到的,这只会允许您执行直接替换(逐字节) - 而不是删除或插入字节。
答案 1 :(得分:0)
从Hex字符串转换为字节数组(基本上是您需要的) - 请参阅此SO post了解您的需求。
HTH