【问题标题】:Find and get content from .txt files in a specific folder, Android Studio [closed]从特定文件夹中的 .txt 文件中查找并获取内容,Android Studio [关闭]
【发布时间】:2017-04-16 15:54:54
【问题描述】:

我正在创建一个应用程序,它将在我手机的蓝牙文件夹中查找所有 .txt 文件,打开文件,获取特定内容(日期和运行时间)。

计算机通过蓝牙将 .txt 文件发送到手机,然后应用应检查该文件夹。

我可以使用什么样的功能来查找、打开和分析所有文件?

提前非常感谢。

【问题讨论】:

    标签: android file bluetooth find


    【解决方案1】:

    首先,获取你要搜索的目录:

    String path = Environment.getExternalStorageDirectory().toString()+"/bluetooth";
    File directory = new File(path);
    

    现在你可以得到这样的文件列表

    File[] files = directory.listFiles();
    

    现在我们遍历每个文件以查看其是否为 .txt 文件

    StringBuilder text = new Stringbuilder;
    for (File f : files)
    {
       if (f.isFile() && f.getpath().endswith(".txt")) { 
        //it is a txt file, now do your action
        try {
            //read file
            BufferedReader br = new BufferedReader(new FileReader(f));
            String line;
            br.readLine();
            //read each line
            while ((line = br.readLine())) {
                //Write your conditions here
                //add line to stringbuilder
                text.append(line);
            }
            br.close();
        } catch (IOException e) {
            //You'll need to add proper error handling here
            Log.d("Exception",e.toString());
        }
       }
    }
    

    如果在 Android M 或更高版本上运行,请添加此权限

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                requestPermissions(new String[]{
                        Manifest.permission.READ_EXTERNAL_STORAGE
                }, 10);
    
            }
        }
    

    【讨论】:

    • 我已经检查了这个解决方案,并且我得到了一个空指针异常,从系统打印我得到路径是:/storage/emulated/0/bluetooth 和来自'code'(文件 [ ] files = directory.listFiles();) 我得到空值。我手机的蓝牙文件夹目前包含 12 个文本文件,所以它应该能找到一些东西。会不会是找错文件夹了?
    • listFiles() 方法的文档明确指出它“如果此抽象路径名不表示目录,或者发生 I/O 错误,则返回 null。”。还要检查您是否有读取存储的权限。如果您使用的是 Android M 及以上版本,则还必须在运行时请求许可。
    • 我在清单中写了 没有任何变化
    • 检查编辑的答案
    • 现在它陷入了一个循环,并不断尝试读取文件。我还应该在清单中放置 吗?最低 SDK 为 15,我的手机使用 API 25
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    相关资源
    最近更新 更多