Android 在指定目錄創建並寫入文件


目標:

在file目錄中創建文件,寫入文本信息。用於和App之間進行數據共享。

經過關鍵字的搜索,發現都是推薦的以下方法:

FileOutputStream outputStream = openFileOutput(fileName, mode); 

其中:

name:
用於指定文件名稱,不能包含路徑分隔符“/”,如果文件不存在,Android會自動創建它。比如 info.txt

創建的文件保存在/data/data/<package name>/files/目錄中。


mode取值:
MODE_APPEND    私有(只有創建此文件的程序能夠使用,其他應用程序不能訪問),在原有內容基礎上增加數據             
MODE_PRIVATE   私有,每次打開文件都會覆蓋原來的內容        
MODE_WORLD_READABLE 可以被其他應用程序讀取(這個現在已經不用了,用了會報錯)
MODE_WORLD_WRITEABLE 可以被其他應用程序寫入

 

然而,/data/data/ 目錄通過手機自帶的文件管理系統,以及電腦文件管理系統都看不到。

需要在Android Studio中用Device Monitor打開,具體路徑

Tools - Android - Android Device Monitor - File Explorer

 

下面介紹我使用的解決方案:

                Log.e(TAG, copyContent.toString());

                try {
                    File fs = new File(Environment.getExternalStorageDirectory()+"/msc/" + fileName);
                    FileOutputStream outputStream =new FileOutputStream(fs);
                    outputStream.write(copyContent.getBytes());
                    outputStream.flush();
                    outputStream.close();
                    Toast.makeText(getBaseContext(), "File created successfully", Toast.LENGTH_LONG).show();
                    Log.e(TAG, "Successful");
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }

 

即不使用openFileOutput方法,使用FileOutputStream方法,該方法的傳遞參數是 可設置路徑的File對象。

先在指定目錄創建File文件,再用FileOutputStream類為該文件創建outputStream,之后就可以正常的寫數據了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM