无法将我的文件保存到手机存储Android

时间:2017-04-13 12:41:30

标签: java android

您好,我在Android Studio上制作应用时遇到了问题。我希望用户输入一些文本,然后单击保存按钮,该按钮应将文本文件保存在手机上。我有以下代码运行没有任何错误,但它没有做任何事情。我找不到它应该保存的文件。

public class TakeNotes extends Activity implements View.OnClickListener {

String content = "";
File file;
FileOutputStream outputStream;
TextView tv;
Button btnSave;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.take_notes);
    tv = (TextView) findViewById(R.id.txtInput);
    btnSave = (Button) findViewById(R.id.btnSave);
    btnSave.setOnClickListener(this);

}

public void onClick(View v) {
    if (v == findViewById(R.id.btnSave)) {
        try {
            file = new File(Environment.getExternalStorageDirectory(), "test.txt");


            outputStream = new FileOutputStream(file);
            outputStream.write(content.getBytes());
            outputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
  }
}

2 个答案:

答案 0 :(得分:0)

您应该在AndroidManifest中包含权限:

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

答案 1 :(得分:0)

您需要在Android 6.0(API级别23)及更高版本中添加运行时权限

这是WRITE_EXTERNAL_STORAGE

的代码
if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
    Log.d(TAG,"Permission is granted");

    return true;
}

请求像这样的其他许可

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_CODE);

以下是official文档