你剛纔不店字節的文本。決不! 由於0x00可以寫入文件中的一個字節,或者作爲一個字符串,在這種情況下(十六進制)佔用4倍的空間。 如果您需要這樣做,請討論這個決定會有多糟糕!
我將編輯我的答案,如果你可以提供一個明智的理由,但。
你只會保存的東西,實際文本,如果:
- 更容易(不是這樣)
- 它增加值(如果超過4(空格數增加文件大小)增加值,那麼是的)
- 如果用戶應該能夠編輯文件(那麼你會省略「0x」...)
你可以寫字節是這樣的:
public static void writeBytes(byte[] in, File file, boolean append) throws IOException {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file, append);
fos.write(in);
} finally {
if (fos != null)
fos.close();
}
}
,讀這樣的:
public static byte[] readBytes(File file) throws IOException {
return readBytes(file, (int) file.length());
}
public static byte[] readBytes(File file, int length) throws IOException {
byte[] content = new byte[length];
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
while (length > 0)
length -= fis.read(content);
} finally {
if (fis != null)
fis.close();
}
return content;
}
,因此有:
public static void writeString(String in, File file, String charset, boolean append)
throws IOException {
writeBytes(in.getBytes(charset), file, append);
}
public static String readString(File file, String charset) throws IOException {
return new String(readBytes(file), charset);
}
寫入和讀取字符串。
請注意,我不使用try-with-resource結構,因爲Android的當前Java源代碼級別太低。 :(
不清楚你想要什麼 – njzk2
@Talls:請告訴我們你的實際要求是什麼!如果它的行爲是存儲字節**這個效率低下,我們將幫助你,如果不是,我們會阻止你犯大錯誤 – tilpner