У меня есть строка, и я хочу сохранить ее в файл и иметь возможность снова извлечь ее в строку.
Что-то не так с моим кодом, потому что предполагается, что я должен написать что-то двоичное, не читаемое, но когда я открываю файл, я могу прочитать это:
Исходная строка:
[{"name":"asdasd","etName":"111","members":[]}]
Сохраненная строка в двоичном файле:
[ { " n a m e " : " a s d a s d " , " e t N a m e " : " 1 1 1 " , " m e m b e r s " : [ ] } ]
Обнаружено две проблемы:
- Не сохраняется в двоичном файле!Я могу это прочитать.Предполагается, что это запутанный двоичный текст, не читаемый, но я могу его прочитать.
- Когда я получаю его, он получается с таким странным пространством между символами.Так что это не работает.
Это мой код для хранения строки:
public static void storeStringInBinary(String string, String path) {
DataOutputStream os = null;
try {
os = new DataOutputStream(new FileOutputStream(path));
os.writeChars(string);
os.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (os != null) {
try {
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
А это мой код для чтения из двоичного файла в строку:
public static String retrieveStringFromBinary(String file) {
String string = null;
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader (file));
String line = null;
StringBuilder stringBuilder = new StringBuilder();
while((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
return stringBuilder.toString();
} catch (Exception e){
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return string;
}
Спасибо.