首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从文本文件读取不能正常工作

从文本文件读取不能正常工作
EN

Stack Overflow用户
提问于 2018-06-10 02:45:20
回答 2查看 669关注 0票数 0

嘿,伙计们,当我试图用android java读取一个文本文件时,我真的很纠结于一个问题。

代码语言:javascript
复制
public String readFromFile(String filename)
{
    String content = "";
    try
    {
        File dir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + "/MyApplication");
        File file = new File(dir, filename);

        Scanner scanner = new Scanner(file);
        String line = "";

        while(scanner.hasNextLine())
        {
            line = scanner.nextLine();
            content += line + "\n";
        }
        scanner.close();

    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    return content;
}

我尝试使用扫描仪和缓冲阅读器来提取内容。

代码语言:javascript
复制
public List<String> readFromFile(String filename)
{
    List<String> lines = new ArrayList<String>();
    FileReader fileReader;
    BufferedReader bufferedReader;

    try
    {
        File dir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + "MyApplication");
        File file = new File(dir, filename);

        fileReader = new FileReader(file);
        bufferedReader = new BufferedReader(fileReader);

        String line = bufferedReader.readLine();
        while(line != null)
        {
            lines.add(line);
            bufferedReader.readLine();
        }
        bufferedReader.close();
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    return lines;
}

但它们似乎都不起作用。这些函数只返回零,就好像文件是空的一样。此外,我没有收到错误消息,并且我仔细检查了路径。通常这些函数对我来说工作得很好,但我不能解决这个问题。

感谢您的帮助:)

编辑:如果发现问题。文件的权限或位置都很好,问题只是我把

代码语言:javascript
复制
FileOutputStream fileOutputStream = new FileOutputStream(file)

在我调用readFromFile()方法之前的代码中。我想正因为如此,readFromFile()方法返回文件为空。感谢您的回答!

EN

回答 2

Stack Overflow用户

发布于 2018-06-10 04:06:48

第二种方法不起作用,因为在while循环中,您没有将readLine方法的结果赋给line变量。改变这一点

代码语言:javascript
复制
bufferedReader.readLine();

到这个

代码语言:javascript
复制
line = bufferedReader.readLine();

此外,在MyApplication字符串之前的文件路径中缺少/

我尝试了第一种方法,它成功地读取了文件。检查文件是否存在,并检查其内容。此外,请在阅读前通过调用检查您的应用程序是否具有权限

代码语言:javascript
复制
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)
            != PackageManager.PERMISSION_GRANTED) {
    Log.e(TAG, "READ_EXTERNAL_STORAGE permission not granted!");
}
票数 1
EN

Stack Overflow用户

发布于 2018-06-10 03:31:59

你有没有给你的应用程序读文件的权限?

代码语言:javascript
复制
<uses-permission 
android:name="android.permission.READ_EXTERNAL_STORAGE" / >
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50777472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档