- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试将文本文件导出到 SD 卡中用户定义的文件夹。但它将文件保存到 SD 卡中的默认文件夹(即本地 -> SD 卡 ->Android -> 数据)。
我的 MainActivity
包含在这里。请帮我找出我的缺陷。
public class MainActivity extends AppCompatActivity {
EditText editText;
private int STORAGE_PERMISSION_CODE = 23;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.editText2);
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
public void savePrivate(View view) {
String info = editText.getText().toString();
File folder = getExternalFilesDir("sample"); // Folder Name
File myFile = new File(folder, "myData2.txt"); // Filename
writeData(myFile, info);
editText.setText("");
createFile(info);
}
private void writeData(File myFile, String data) {
FileOutputStream fileOutputStream = null;
try {
fileOutputStream = new FileOutputStream(myFile);
fileOutputStream.write(data.getBytes());
Toast.makeText(this, "Done" + myFile.getAbsolutePath() +
"sample/", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fileOutputStream != null) {
try {
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
private void createFile(String text) {
File root = null;
File[] files = null;
try {
files = getExternalFilesDirs(Environment.DIRECTORY_DOCUMENTS);
//Getting the path of the sdcard
//Android/data/com.demo.sdcardandroid/files/Documents
root = files[1];
Log.i("SDCARD", "path.." + root.getAbsolutePath());
//check sdcard permission
if (root.canWrite()) {
File fileDir = new File(root.getAbsolutePath());
fileDir.mkdirs();
File file = new File(fileDir, "samplefile.txt");
FileWriter filewriter = new FileWriter(file);
BufferedWriter out = new BufferedWriter(filewriter);
out.write(text);
out.close();
}
} catch (IOException e) {
Log.e("ERROR:---", "Could not write file to SDCard" + e.getMessage());
}
}
}
最佳答案
你的问题是这样的:
getExternalFilesDirs(Environment.DIRECTORY_DOCUMENTS);
你应该使用:
Environment.getExternalStorageDirectory();
这是 createFile 方法的样子:
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
private void createFile(String text) {
File root = null;
File path = null;
try {
path = Environment.getExternalStorageDirectory();
//Getting the path of the sdcard
//Android/data/com.demo.sdcardandroid/files/Documents
Log.i("SDCARD", "path.." + root);
//check sdcard permission
if (path.canWrite()) {
File file = new File(path, "samplefile.txt");
FileWriter filewriter = new FileWriter(file);
BufferedWriter out = new BufferedWriter(filewriter);
out.write(text);
out.close();
}
} catch (IOException e) {
Log.e("ERROR:---", "Could not write file to SDCard" + e.getMessage());
}
}
关于android - 将文本文件导出到 SD 卡或外部存储器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49789825/
假设我有一个 View ,它可以生成 model.fetch() 然后向服务器发出请求。 我想实现: 1) 能够记住结果的检查器 2) 仅当对服务器的最后一次请求早于十分钟时才刷新结果(向服务器发出请
Closed. This question needs to be more focused。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅关注editing this post一个问题。 6
我想将数据从闪存复制到 RAM。 那么如何在 DMA Controller 中设置 RAM 的目标内存地址,以便它可以使用其 channel 将数据从源地址(在闪存中)复制到 RAM 内存。 我是在
我有以下代码行,它将字符串 TesT 存储在 8051 微 Controller 的代码存储器中。 char code *text_to_compare = "TesT"; 如何在 IDATA 内存
我在 Raspberry Pi Pico 上使用 Circuit Python 为我提供键盘快捷键的硬件按钮。我使用的是 Circuit Python 而不是 MicroPython,因为它具有 US
我是一名优秀的程序员,十分优秀!