白云LDC 2022-11-29 02:53 采纳率: 40%
浏览 14
已结题

无法在SD卡中写入数据,同样的代码,换个工程就跑不起来了。

问题遇到的现象和发生背景

同样的一段代码,在一个工程里能运行,另一个却不行。

用代码块功能插入代码,请勿粘贴截图

public void writeToSD(View view) throws IOException {
        qz = findViewById(R.id.qz);
        xh = findViewById(R.id.xh);
        String X = xh.getText().toString().trim();
        String Y = qz.getText().toString().trim();
        String coordinate = X + "," + Y + "," + "\r";
        File dir = new File(Environment.getExternalStorageDirectory(), "point3");
        if (!dir.exists()) {
            dir.mkdir();
        } else {
            File file = new File(dir, SD_FILE_NAME);
            try (BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true)))) {
                String stringBuffer = coordinate + "\n";
                bw.write(stringBuffer);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

运行结果及报错内容

在能完美运行的app里,可以正常写入数据。在不能写入SD卡数据的app里,一点报错也没有。在sdcard/下面,既不创建文件夹,也不创建文件。

我的解答思路和尝试过的方法

SD卡的读、写权限已经添加了。基本是照着能运行的代码抄。都无法创建文件。我还换了真机,照样不行。

我想要达到的结果

 能在SD里写入数据。

  • 写回答

1条回答 默认 最新

  • 码上就疯 2022-11-29 08:16
    关注

    Android6.0之后读写权限需要动态申请,如果你没有写动态申请,那么你手动去该应用权限设置允许一下吧

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月7日
  • 已采纳回答 11月29日
  • 创建了问题 11月29日

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程