我遇到了一个问题,我无法读取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中。有什么想法我可以改变上面的代码使它工作?
答案 0 :(得分:0)
您是否尝试过使用Assets?
答案 1 :(得分:-1)
也许您只是调用它太快而且文件尚未加载。在调用流上的ready()之前使用Thread.sleep()。对于文件I / O来说,阻塞几毫秒也许正常。