将字符串写入二进制文件 java
Writing Strings to a binary file java
我有一个对象列表,其中包含一些简单的字符串属性。我希望能够将这些字符串保存为二进制文件,这样当您在程序外部打开文件时,您只会看到 1 和 0。
我已经设法使用 FileOutputStream
并保存了字符串,但是,我无法设法让它写入二进制文件。该文件读取为清晰可读的文本。我试过了 getBytes()
.
最好的方法是什么?请记住,我希望稍后能够读取文件并构造回对象。使用 Serializable
并保存对象列表会更好吗?
这是我的 FileWriter:
注意: toString()
是自定义的,returns 每个 属性.
都有换行符的字符串
public class FileWriter {
public void write(String fileName, Savable objectToSave ) throws IOException {
File fileToSave = new File(fileName);
String stringToSave = objectToSave.toString();
byte[] bytesToSave = stringToSave.getBytes(StandardCharsets.UTF_8) ;
try (
OutputStream outputStream = new FileOutputStream(fileToSave);
) {
outputStream.write(bytesToSave);
} catch (IOException e) {
throw new IOException("error");
}
}
}
如果您的目标只是序列化,implementing Serializable and writing them would work, but your string is still going to be readable. You can encrypt 流,但反编译您的代码的任何人仍然可以设计一种读取值的方法。
我有一个对象列表,其中包含一些简单的字符串属性。我希望能够将这些字符串保存为二进制文件,这样当您在程序外部打开文件时,您只会看到 1 和 0。
我已经设法使用 FileOutputStream
并保存了字符串,但是,我无法设法让它写入二进制文件。该文件读取为清晰可读的文本。我试过了 getBytes()
.
最好的方法是什么?请记住,我希望稍后能够读取文件并构造回对象。使用 Serializable
并保存对象列表会更好吗?
这是我的 FileWriter:
注意: toString()
是自定义的,returns 每个 属性.
public class FileWriter {
public void write(String fileName, Savable objectToSave ) throws IOException {
File fileToSave = new File(fileName);
String stringToSave = objectToSave.toString();
byte[] bytesToSave = stringToSave.getBytes(StandardCharsets.UTF_8) ;
try (
OutputStream outputStream = new FileOutputStream(fileToSave);
) {
outputStream.write(bytesToSave);
} catch (IOException e) {
throw new IOException("error");
}
}
}
如果您的目标只是序列化,implementing Serializable and writing them would work, but your string is still going to be readable. You can encrypt 流,但反编译您的代码的任何人仍然可以设计一种读取值的方法。