当前位置: 首页 > 知识库问答 >
问题:

如何创建一个新的可写文件?

程化
2023-03-14

我有一个jobIntentService创建一个文件以便在其中添加一些文本,但我得到错误/data/user/0/com.example.projet/files/log.txt(Is a directory)。我不知道我做错了什么...下面是我的代码:

public void ecritureLog(Context context) {

        File path = context.getFilesDir();
        File file = new File(path, "log.txt");

        if (!file.exists()) {
            try {
                file.createNewFile();
            } catch (Exception e) {
                Log.d("Debug ecriture log", "exeption levée : " + e.getMessage());
            }
        }

        try {
            FileOutputStream stream = new FileOutputStream(file);
            stream.write("text-to-write".getBytes());
            stream.close();
        } catch (Exception e) {
            Log.d("Debug ecriture log", "exeption levée : " + e.getMessage());
        }
    }
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

谢谢你的帮助!

共有1个答案

何涵衍
2023-03-14

有了你们的评论,这就有了最后的代码:

public void ecritureLog(Context context) {

        File path = context.getExternalFilesDir(null);
        File file = new File(path, "/log.txt");

        if (file.exists() && file.isDirectory() ) {
            if (!file.delete()){
                Log.d("Debug ecriture log", "!file.delete()");
                return;
            }
        }

        try {
            FileOutputStream stream = new FileOutputStream(file);
            Log.d("Debug ecriture log", "chemin: " +file.getAbsolutePath());
            stream.write("text-to-write".getBytes());
            stream.close();
        } catch (Exception e) {
            Log.d("Debug ecriture log", "exeption levée : " + e.getMessage());
        }
    }

谢谢!

 类似资料:
  • 我是Android系统的初学者。为了学习,我使用android Studio开发了以下UI。 屏幕上的矩形是一个文本视图,圆形是一个我可以用手绘制的区域。 textview和circle的数量是动态的。

  • 问题内容: 我正在尝试将十六进制值转换为int,以便创建新的可绘制颜色。我不确定是否可以,但是根据文档,应该可以。它明确地要求 公共ColorDrawable(int颜色) 在API级别1中添加。创建具有指定颜色的新ColorDrawable。 参数 color 绘制的颜色。 因此,我的代码无法正常工作,因为我收到一个无效的int:“ FF6666”错误。有任何想法吗? 问题答案: 因为您在谈论十

  • 问题内容: 用最简单的方法,在java中如何创建一个文件并写入内容? 问题答案: 创建一个文本文件: 创建一个二进制文件: Java 7+用户可以使用Files该类来写入文件: 创建一个文本文件: 创建一个二进制文件:

  • 问题内容: 我有一个动态文本文件,可以根据用户的查询从数据库中选择内容。我必须将此内容写入文本文件,并将其压缩在servlet的文件夹中。我应该怎么做? 问题答案: 看这个例子: 这将在D:named 的根目录中创建一个文件,其中将包含一个名为的单个文件。当然,你可以添加更多的zip条目,还可以指定一个子目录,如下所示:

  • 但随后文件每次都被触摸,在日志中显示为黄线,这也是不令人满意的... 这个简单的问题还有更好的解决办法吗?

  • 问题内容: 我正在编写一个Python脚本,该脚本需要将一些数据写入临时文件,然后创建一个运行C ++程序的子进程,该程序将读取该临时文件。我正在尝试使用此功能,但是根据文档, 在命名的临时文件仍处于打开状态时,是否可以使用该名称第二次打开文件,会因平台而异(可以在Unix上使用;在Windows NT或更高版本上不能使用)。 实际上,在Windows上,如果我在写入后刷新了临时文件,但是在我希望