BufferedReader无法在Android项目中找到文件

时间:2012-01-03 14:18:37

标签: java android bufferedreader

我遇到了一个问题,我无法读取Android中的文件,发现这是因为无法找到该文件。我现在已经创建了一个简单的骨骼程序:

public class LoginView extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.loginpanel); 
    Button button = (Button) findViewById(R.id.btnLogin);

    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            ReadingTest rt = new ReadingTest();
        }
    });
}

ReadingTest.java

public class ReadingTest {

private BufferedReader br;

public ReadingTest () {
    try {
        br = new BufferedReader (new FileReader("profiles"));
        System.out.println("BufferedReader was successful...");
    } catch (FileNotFoundException e) {
        System.out.println("BufferedReader was unsuccessful...");
        e.printStackTrace();
    }
}

此程序应该读取我放在与AndroidManifest.xml文件相同位置的配置文件,即在项目根目录中。该程序打印是否成功,不幸的是它打印不成功。有人能告诉我在哪里放置文件以及如何通过BufferedReader访问它?我试图移植的整个java项目依赖于读取和写入文件,因此在完成之前我无法继续进行。提前谢谢!

编辑:好的,经过一些研究,我可以在我的主要活动中打开我的文件!我将profiles.txt文件放在我的主要活动的res / raw文件夹中,我编写了以下代码:

is = this.getResources().openRawResource(R.raw.profiles);
    br = new BufferedReader(new InputStreamReader(is));

由于某种原因,我的BufferedReader可以读取主活动中的文件,但如果我尝试在单独的类中使用相同的代码创建BufferedReader,然后继续尝试调用所述类,则会关闭VM并关闭提出了一个致命的异常:主要在logcat中。有什么想法我可以改变上面的代码使它工作?

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用Assets

答案 1 :(得分:-1)

也许您只是调用它太快而且文件尚未加载。在调用流上的ready()之前使用Thread.sleep()。对于文件I / O来说,阻塞几毫秒也许正常。