Java新手。使用Context和openFileInput从文件读取问题

时间:2012-04-05 18:35:57

标签: java android android-context contextpath

在过去的几个小时里,我一直在努力做到这一点,而且有点失去它。

我想要做的就是打开一个文件,阅读它并将其显示到控制台;就是这样。

我正在使用eclipse开发android 2.3.3。

我尝试过使用一些不同的方法来处理我在这里找到的代码,以及其他网站。这就是我现在拥有的以及它的全部内容:

在OnCreate函数中:

setContentView(new TestMap(this));

testMap类:

TestMap(Context context){
        super(context);
        // might need to be on the panel class
        loadTileFile("worldonelayout.txt", context);

在同一个班级:

private void loadTileFile (String filename, Context context){
        FileInputStream input = null;
        InputStreamReader reader = null;

        char[] inputBuffer = new char[256];
        String data = null;

        try {
            input = context.openFileInput("worldonelayout.txt");
            reader = new InputStreamReader(input);
            reader.read(inputBuffer);
            data = new String(inputBuffer);
            System.out.println(data);
            Toast.makeText(context, "Text read", Toast.LENGTH_SHORT).show();

        } catch (Exception e) {
            e.printStackTrace();
            Toast.makeText(context, "Text not read", Toast.LENGTH_SHORT).show();

        } finally {
            try {
                input.close();
                reader.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

此代码无效。它总是遇到异常。

“/ data / data / com.name.somethingiremoved / files / worldonelayout.txt(没有这样的文件或目录)”。

这发生在第一个CATCH。 BTW我的文件位于根目录:Documents\Eclipse\workspace\project\worldonelayout.txt。我也可以在左侧的浏览器中看到该文件

从我在这里和其他网站上看到的,它与从Activity派生的Context类有关吗?我不希望将此代码与我的活动放在同一个类中。这有什么方法吗?

如果您还需要我的更多信息,请与我联系。

1 个答案:

答案 0 :(得分:1)

打开的文件正在手机的文件系统上查找文件,而不是计算机上的文件。它告诉你它准确找到它的位置 - 在/data/data/com.name.somethingiremoved/files/worldonelayout.txt下的电话