簡體   English   中英

從android sdcard文件中刪除帶有問號文本的黑色菱形

[英]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()你寫之前,我可以假設你想在你可以閱讀文件的實際字符串。 為此,您可能要使用PrintStreamPrintStream.println()方法代替ObjectOutputStream

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM