将文件保存到SD卡

时间:2016-03-08 10:56:49

标签: java android android-sdcard

如何在将文件保存到SD卡时按下按下的按钮的名称我有许多不同的按钮和一种方法

File file = new File(SDCardRoot,"/Download/Alnabi.pdf");

如果有人点击第一个按钮,我想将alnabi.pdf保存到SD卡,但如果我点击第二个按钮怎么办?我想要一种方法将文件名“alnabi.pdf”更改为另一个,具体取决于点击了哪个按钮,谢谢。

2 个答案:

答案 0 :(得分:0)

您必须为这两个按钮提供不同的功能。但为了保持代码的可维护性,我建议重用代码,这对所有/两个按钮都很常见(通过定义方法)。

代码看起来像:

button1.addActionListener(e -> saveFile("Alnabi.pdf")); // Java8-Syntax   
button2.addActionListener(e -> saveFile("AnotherOne.pdf"));

该方法包含公共代码:

public void saveFile(String variableFileName) {
    File file = new File(SDCardRoot,"/Download/"+variableFileName);
    ...
}

答案 1 :(得分:0)

首先编写一个代码,检查外部存储是否可用于READ / WRITE操作  检查用户是否具有在外部存储上写入的权限的方法

public static boolean canWriteOnExternalStorage() {
// get the state of your external storage
 String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
// if storage is mounted return true
  Log.v(“sTag”, “Yes, can write to external storage.”);
  return true;
 }
return false;
}

使用此代码保存文件

File sdcard = Environment.getExternalStorageDirectory();
File dir = new File(sdcard.getAbsolutePath() + “/your-dir-name/”);
dir.mkdir();
File file = new File(dir, “My-File-Name.txt”);
FileOutputStream os = outStream = new FileOutputStream(file);
String data = “This is the content of my file”;
os.write(data.getBytes());
os.close();

需要以下许可

<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” />
相关问题