我正在使用Java在Android中进行编程,我有两个分支:第一个是MainActivity.java
,第二个是Tokenizer.java
。在Tokenizer
中,我使用File,FileReader和BufferedReader来读取txt文件。在本课程中,我使用下一个代码:
package net.try.........;
import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;
import android.content.Context;
public class Tokenizer {
BufferedReader br;
FileReader fr;
File f;
public void leerPath ( ) {
try {
f = new File("F:path...../file.txt");
fr = new FileReader(f);
br = new BufferedReader(fr);
}
catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
当调试MainActivity“f”时,那些文件的路径是FileReader,然后显示f为null,所以br也是null。为什么在Java中使用代码有效但Java / Android有什么不合理的原因?
这是main activiti中的代码
public class MainActivity extends MapActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Tokenizer ob1=new Tokenizer();
ob1.leerPath();
}
}
答案 0 :(得分:2)
问题是你已经声明了实例变量的加载,但是你也声明了本地变量的加载它“隐藏”实例变量。您正在为局部变量赋值,但这根本不会影响实例变量。
此:
File f = new File("F:path...../file.txt");
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
应该是:
f = new File("F:path...../file.txt");
fr = new FileReader(f);
br = new BufferedReader(fr);
这假设您确实想要它们是实例变量。为什么你还需要这三个?你只是需要你正在阅读的读者吗?