【问题标题】:save file to sd card将文件保存到 sd 卡
【发布时间】:2016-03-08 10:56:49
【问题描述】:

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

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

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

【问题讨论】:

  • 这不是有效的 JavaScript 语法。你是在谈论 Java 吗?

标签: java android android-sdcard


【解决方案1】:

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

代码可能类似于:

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);
    ...
}

【讨论】:

    【解决方案2】:

    首先编写一个代码来检查外部存储是否可用于 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” />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      • 2011-06-08
      相关资源
      最近更新 更多