簡體   English   中英

Android:在外部存儲設備上寫入/讀取文件時出現問題

[英]Android: Problem to write/read file on external storage

我在這里和在互聯網上,例如在閱讀了一些問題之后,試圖寫/讀外部存儲。但是我在SD中創建文件時遇到了問題,它無法創建和加載,並且mkdirs給了我將被忽略的錯誤:

public EditText et;
public Button buttonSave,buttonLoad;
public TextView tv;

public String myData = "";

public File root = android.os.Environment.getExternalStorageDirectory();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_main);

    et = findViewById(R.id.inserimento);
    buttonSave = findViewById(R.id.save);
    buttonLoad = findViewById(R.id.load);
    tv = findViewById(R.id.tv);

    File dir = new File(root.getAbsolutePath() + "/eliminaCoda");
    dir.mkdirs();
    final File file = new File(dir, "Lista.txt");

    buttonSave.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                FileOutputStream fos = new FileOutputStream(file,true);
                fos.write(et.getText().toString().getBytes());
                fos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            et.setText("");
        }
    });

    buttonLoad.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                FileInputStream fis = new FileInputStream(file);
                DataInputStream in = new DataInputStream(fis);
                BufferedReader br =
                        new BufferedReader(new InputStreamReader(in));
                String strLine;
                while ((strLine = br.readLine()) != null) {
                    myData = myData + strLine;
                }
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            tv.setText(myData);
        }
    });
}

您必須在AndroidManifest.xml文件中添加寫入uses-permission android:name =“ android.permission.WRITE_EXTERNAL_STORAGE” 另外,您還必須請求運行時權限。

請檢查此演示以獲得運行時權限棉花糖中的運行時權限

暫無
暫無

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

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