簡體   English   中英

文件保存到內部存儲器,而不是SD卡

[英]Files save to the internal storage, not to the SD card

我正在使用HTC Desire 610進行Android開發。 我按照相同問題的其他答案中的示例操作,但是我保存的所有文件最終都存儲在內部設備存儲中,而不是SD卡中。 手機絕對可以識別SD卡,並且可以從手機內部將文件傳輸到SD卡。

我嘗試對SD卡的文件路徑進行硬編碼,並且還嘗試在未插入計算機的情況下運行該應用程序-均無濟於事。 我的應用程序能夠將這些文件直接保存到SD卡中非常重要。 有任何想法嗎?

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    writeDataToFile("2394872934729348");

}


public void writeDataToFile(String data){
    BufferedWriter bufferedWriter = null;

    String dataOutFileName = Environment.getExternalStorageDirectory().getAbsolutePath()+"/data.txt";

    try{
        bufferedWriter = new BufferedWriter(new FileWriter(dataOutFileName,true));
        bufferedWriter.write(data);
        bufferedWriter.flush();
    }
    catch (IOException e){
        e.printStackTrace();
    }
    finally {
        try {
            if(bufferedWriter != null){
                bufferedWriter.close();
            }
        } catch (IOException e){
            e.printStackTrace();
        }
    }

    MediaScannerConnection.scanFile(this,new String[]{dataOutFileName}, null,null);
}
}

編輯:我現在正在嘗試。 我得到FileNotFoundException,除非我直接寫到包文件(com.mypackage等)

    File dataDir = new File("/storage/ext_sd/Data/");
    dataDir.mkdirs();
    File outputFile = new File(dataDir,"data.txt");

    try{
        FileOutputStream fos = new FileOutputStream(outputFile);
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fos);
        outputStreamWriter.write(data);
        outputStreamWriter.close();

    }
    catch (IOException e){
        Log.e("Exception", "File write failed: " + e.toString());
    }

要訪問外部存儲上的私有存儲目錄​​,請使用getExternalFilesDirs() ,而不要使用getExternalStorageDirectory()。

它將返回一個數組,其中每個位置都有條目。 陣列中的第一個條目被視為主要的外部存儲,除非該位置已滿或不可用,否則應使用該位置。 有關詳細說明,請參閱在Android API上使用外部存儲指南。

您是否已在AndroidManifest.xml中為您的應用授予正確的權限? 如果尚未執行此操作,則需要在清單中添加以下行,以授予您的應用正確的寫入SD卡的權限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

也許那是問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM