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
。
我有一個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();
}
}
謝謝!
我可以有更多的日誌消息。 – Ranjithkumar
我剛剛張貼了一張圖片@Learner – DorkMonstuh
你是否在你的數據爲空,有3條記錄中的第一條記錄爲空作爲關鍵。你能檢查你的數據嗎?如果您有正確的輸入,請說明如何插入數據。 – Ranjithkumar