我的手機運行Android 4.0.4並處於媒體傳輸協議(MTP)模式。我的應用程序正嘗試改寫手機的SD卡上的同一個文本文件與進步較大的文件,使用下面的代碼的連續調用:Android:不完全覆蓋文本文件
File mDir = new File(Environment.getExternalStorageDirectory(), "Location");
File mFile = new File(mDir, "Location.txt");
PrintWriter mPW = new PrintWriter(mFile);
mPW.println(sData); // sData is a string of a few hundred characters
mPW.flush();
mPW.close();
期間USB調試模式測試,我有以下問題。在Windows 7中,我可以打開使用最新數據編寫的文件,但修改日期的時間和大小對應於較早的文件寫入,我只能看到與該大小相對應的字符數。舊文件中有效的新數據。
我在網上搜索,但似乎沒有人報告過這類問題。我嘗試了很多更好的方式來編寫文件,包括使用緩衝類,甚至在重新寫入文件之前刪除和重新創建文件,都無濟於事。
重新啓動手機後,問題似乎消失了,但我不知道這是否與任何人都響了。
這使得很多道理@CommonsWare。幸運的是,在開發過程中,我只是依靠MTP來簡化操作,因爲用戶將通過Airdroid或類似軟件遠程訪問文件。 有關USB調試是否與MTP或MSC同樣滿意的看法似乎有所不同。 – user3787658
@ user3787658:如果是MSC,則表示USB Mass Storage,用於Android 1.x/2.x。然後,當它作爲驅動器安裝在主機上時,您將無法寫入文件。 MTP至少允許同時訪問,儘管有限制。 – CommonsWare
是的,我的意思是USB ** m ** ass ** s ** torage device ** c ** lass。感謝您指出USB Mass Storage不會真的加快開發速度。 現在我知道問題只是一種可見性,我可以不再擔心它。 順便說一句,我已經使用SD重新掃描程序來嘗試改善同步,但我通常最終也不得不拔掉並重新插入USB電纜! – user3787658