2017-03-10 29 views
0

我使用openFileOutput()創建一個新的txt文件。我需要該文件在其他應用程序(以及通過USB連接Android設備時可以從PC上看到),我試過使用.setReadable(true);但這看起來並不合理,請告訴我該如何聲明文件可見/公衆。創建一個文件unsing openFileOutput()這對其他應用程序是可見的

try { 
        textIncoming.append("saving"); 
        final String STORETEXT = "test.txt"; 
        OutputStreamWriter out = new OutputStreamWriter(openFileOutput(STORETEXT, 0)); 
        out.setReadable(true); 
        out.write("testing"); 
        out.close(); 
       } 
       catch (Throwable t) { 
        textIncoming.append("not saving"); 
       } 

香港專業教育學院改變了我的程序使用getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS),但由於某些原因,它返回路徑/存儲/模擬/ 0 /文檔,我甚至不能上找到此文件夾我使用ES文件瀏覽器查看了Android設備上的文件,但無法找到我想要創建的文件夾或文件(另外,我希望這些文件夾位於SD卡上的文檔文件夾中,所以它似乎沒有給出我是一個指向SD卡的指針,並且不創建文件夾,也不創建文件我的更新代碼,請告知

String root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).toString(); 
       File myDir = new File(root + "/Saved_Receipts"); 
       myDir.mkdirs(); 
       Random generator = new Random(); 
       int n = 10000; 
       n = generator.nextInt(n); 
       String fname = "DRcpt-" + n + ".xml"; 
       textIncoming.append(root); 
       File file = new File(myDir, fname); 
       if (file.exists()) { 
        file.delete(); 
       } 
       try { 
        FileOutputStream out = new FileOutputStream(file); 
        out.flush(); 
        out.close(); 
       } 
       catch (Exception e) { 
        e.printStackTrace(); 
       } 

回答

0

如果您希望任何人都可以讀取它,請將其保存到SD卡。 這個android文檔應該告訴你你需要做什麼。 https://developer.android.com/guide/topics/data/data-storage.html#filesExternal

+0

好吧,我看到如何訪問外部存儲,但不知道如何實際指向其中一個文件夾來實際創建文件,並寫入該文件。看起來OutputStreamWriter .setReadable和.write不支持外部內存? – Chrish

+0

當然,所有的工作也適用於外部存儲。 – greenapps

0

openFileOutput()documentation說:

開放的私人文件

所以它創造不會對其他應用程序可見的,除非你把它複製到另一個目錄中的文件這是可見的。在這種情況下,您必須將數據保存在與其他應用程序共享的「外部存儲」中。使用此代碼link

相關問題