1

我有这个函数,当我调用它时,它不会返回任何东西。

public String getfileFromSDCard(String filename){//get the file
    String text;
    text = "";

    File root = new File(Environment.getExternalStorageDirectory(), "Notes");
    if (!root.exists()) {
        root.mkdirs();
    }
    File file = new File(root,"file.txt");
    try {
        BufferedReader br = new BufferedReader(new FileReader(file));
        String str;

        while ((str = br.readLine()) != null) {
            text = text + str;
        }
        br.close();
    }
    catch (IOException e) {
        e.printStackTrace();
    }
    Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
    return text;
}

我是否需要向我的 android 清单添加任何权限,除了

...uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" ...(我在代码中写了这一行)

我已经添加了这个并且正在运行,因为我可以轻松编写一个文件,但之后我无法读取它

这就是我从 onCreate 调用函数的方式

    TextView countDisplay = new TextView(this);
    CreatefiletoSDCard("testnumberone.txt","22222fkdf sdjf hjsdf sdj fsdf ");
    countDisplay.setText(getfileFromSDCard("testnumberone.txt"));

    this.setContentView(countDisplay);

ps: CreatefiletoSDCard() 有效。

4

1 回答 1

1

尽管您在方法中传递了一个filename参数getfileFromSDCard(),但您似乎已经将您正在读取的实际文件(名称)硬编码到file.txt. 根据您用于创建测试文件的文件名猜测,错误可能是您尝试从不存在的文件中读取,无论您实际传递给方法的名称是什么。

换句话说,您可能想要更改以下行:

File file = new File(root,"file.txt");

到:

File file = new File(root,filename);
于 2012-04-23T00:57:52.977 回答