2014-05-20 64 views
0

我有寫作和從文件讀取的問題,因爲標題暗示。當我保存到內部存儲器時,我無法訪問我的文件保存到的默認路徑。我有2個hashmaps,其中一個保存當前要寫入文件的數據,另一個保存從文本文件讀入的數據。我這樣做是爲了檢查文件是否已被正確寫入。我很抱歉,如果代碼中存在任何初始缺陷,稍後我會完成這些代碼,那麼對於使用Android和Java來說,我是相當新的。Java Android沒有正確寫入和讀取文件

FILENAME是一個字符串,它擁有不僅是文件名本身及其延長而這是.txt

@Override 
protected void onPause() 
{ 
    super.onPause(); 
    File fp = new File(context.getFilesDir(), FILENAME); 
    if(fp.exists()){ 
     Log.d("FILE", "EXISTS"); 
    } else 
     Log.d("FILE", "DOES NOT EXISTS"); 

    Log.d("HOME", "pause called"); 
    // loop until entries are written to file 
    try{ 
     if(!dataBank.isEmpty()){ 
      FileOutputStream fos = context.openFileOutput(FILENAME, Context.MODE_PRIVATE); 
      Writer out = new OutputStreamWriter(fos); 

      Iterator<Map.Entry<String, String>> i = dataBank.entrySet().iterator(); 

      while(i.hasNext()){ 
       String key = i.next().getKey(); 
       Log.d("WRITE", key + "," + dataBank.get(key)); 
       out.write(key + "," + dataBank.get(key) + "\n"); 
      } 

      out.close(); 
      fos.close(); 
     } 

     FileInputStream fis = context.openFileInput(FILENAME); 

     BufferedReader bReader = new BufferedReader(new InputStreamReader(fis)); 
     String read = ""; 
     Log.d("FILE0", "READ"); 
     while((read = bReader.readLine()) != null){ 
      String[] dataArray = new String[2]; 
      dataArray = read.split(","); 
      compare.put(dataArray[0], dataArray[1]); 
     } 
     bReader.close(); 
     fis.close(); 
     Log.d("FILE1", "READ"); 

    }catch(Exception e){ 
     Log.d("ERROR", "onPause!"); 
    } 
} 

Log.d的消息,這是我所得到的。我輸入的訂單是John,Alice,然後是Bob

logcat log

我有一個EditText箱這是用戶類型的名稱和2個按鈕,一個按鈕,把你從庫中選擇圖像,並從它獲得的文件路徑,並將其存儲與輸入到文本框中的名稱相關聯的值。這些是在此方法中添加的:

public void onActivityResult(int requestCode, int resultCode, Intent data){ 
    if(resultCode == RESULT_OK){ 
     old_User = username; 
     Uri selectedImageUri = data.getData(); 
     selectedImagePath = getPath(selectedImageUri);   
     dataBank.put(old_User, selectedImagePath); 
    } else { 
     Toast.makeText(context, "FAILED TO GET FILEPATH...", duration).show(); 
    } 
} 

謝謝!

+0

我可以有更多的日誌消息。 – Ranjithkumar

+0

我剛剛張貼了一張圖片@Learner – DorkMonstuh

+0

你是否在你的數據爲空,有3條記錄中的第一條記錄爲空作爲關鍵。你能檢查你的數據嗎?如果您有正確的輸入,請說明如何插入數據。 – Ranjithkumar

回答

1

如果您需要一致的訂購,您可以使用LinkedHashMap(用於插入/訪問訂單)。 所以你可以訂購它。