[英]remove black diamond with a question mark text from android sdcard file
我正在使用json數據創建一個列表視圖。當用戶離線時,我想在列表視圖中顯示數據。 我已經將json數據存儲在android sdcard中。 當用戶處於脫機狀態時,我會檢索數據並將其顯示在列表視圖中。 問題是,當我從目錄中讀取文件時,它顯示帶有問號的黑色菱形並將其存儲在數組列表中。 這種類型的“ t *”我的問題是如何從Arraylist中刪除這種類型的字符串。 有人請幫忙
保存數據:
public void saveMyData()
{
try {
ObjectOutput out = new ObjectOutputStream(new FileOutputStream(new File(getFilesDir(),"")+"cachefile.txt"));
out.writeObject(al.toString());
Toast.makeText(getApplicationContext(), "Data Saved..",Toast.LENGTH_LONG).show();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
這是我的檢索代碼。
String fileContent = "";
try {
String currentLine;
BufferedReader bufferedReader;
FileInputStream fileInputStream = new FileInputStream(getFilesDir()+"cachefile.txt");
bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream,"UTF-8"));
while ((currentLine = bufferedReader.readLine()) != null) {
fileContent += currentLine + '\n';
}
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
Log.d("FAILED","THOS IS NULL");
fileContent = null;
}
Log.d("SUCESS","SUCESS BUDDYY"+fileContent);
廣義上講,問題在於您使用的是ObjectOutputStream
將數據寫入文件,而使用BufferedReader
讀取回文件ObjectOutputStream
專門用於允許將對象和本機數據類型寫到文件中的流中。可以通過ObjectInputStream
讀回它們,以相同的方式重構對象。 這種編碼不是人類可讀的,通常包含額外的字符作為字段分隔符。
我不知道是什么al
的,但因為你調用toString()
你寫之前,我可以假設你想在你可以閱讀文件的實際字符串。 為此,您可能要使用PrintStream
和PrintStream.println()
方法代替ObjectOutputStream
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.