在android活动类中使用BufferedReader
我想在android中使用BufferedReader从textFile保存字符串数组的值 但我在日志中发现了错误 请任何人帮助解决这个问题 提前感谢……) 01-02 20:15:53.220:E/AndroidRuntime(817):java.lang.RuntimeException:无法启动活动组件信息{com.example.tester1/com.example.tester1.MainActivity}:java.lang.NullPointerException 布局在android活动类中使用BufferedReader,android,nullpointerexception,bufferedreader,Android,Nullpointerexception,Bufferedreader,我想在android中使用BufferedReader从textFile保存字符串数组的值 但我在日志中发现了错误 请任何人帮助解决这个问题 提前感谢……) 01-02 20:15:53.220:E/AndroidRuntime(817):java.lang.RuntimeException:无法启动活动组件信息{com.example.tester1/com.example.tester1.MainActivity}:java.lang.NullPointerException 布局 活动
活动
公共类MainActivity扩展活动{
列表视图列表1;
列表视图列表2;
字符串[]列表数组;
缓冲读取机场位置;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
试一试{
AirportLocation=new BufferedReader(新文件读取器(“F:/Airport-Location3.txt”);
}catch(filenotfounde异常){
e、 printStackTrace();
}
listArray=新字符串[1168];
字符串行1;
int c=0;//位置检测器
试一试{
而((line1=AirportLocation.readLine())!=null){
StringTokenizer s=新的StringTokenizer(第1行);
字符串airport=s.nextToken();
listArray[c]=机场;
C++;
}
}捕获(IOE异常){
e、 printStackTrace();
}
list1=(ListView)findViewById(R.id.list1);
list2=(ListView)findViewById(R.id.list2);
ArrayAdapter1=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,listArray);
ArrayAdapter2=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,listArray);
列表1.设置适配器(适配器1);
列表2.设置适配器(适配器2);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
}
在您的Android项目中
AirportLocation = new BufferedReader(new FileReader("F:/Airport-Location3.txt"));
到
在你的Android项目中
AirportLocation = new BufferedReader(new FileReader("F:/Airport-Location3.txt"));
到
看起来您正在从HDD(本地驱动器
(F:)
)访问文件,这是不可能的。如果要更好地阅读此文件,请将其放在项目的“资产”文件夹中,然后
AirportLocation = new BufferedReader(
new InputStreamReader(getAssets().open("Airport-Location3.txt")));
String line = AirportLocation.readLine();
建议:请遵循java的命名约定,它说
类
名称以大写字母开头,它们的引用以小写字母开头
,然后遵循camenotations
看起来您是从HDD(本地驱动器(F:)
)访问文件,这是不可能的。如果要更好地阅读此文件,请将其放在项目的“资产”文件夹中,然后
AirportLocation = new BufferedReader(
new InputStreamReader(getAssets().open("Airport-Location3.txt")));
String line = AirportLocation.readLine();
建议:请遵循java的命名约定,它说类
名称以大写字母开头,它们的引用以小写字母开头
,然后遵循camenotations
这里的问题是
listArray = new String[1168];
您正在谈论的是一个恒定长度的字符串数组,并且您正在分配来自相应文件的值,显然数据可能超过或不超过
而列表数组的剩余部分将保留为null
您正在将相同的listary
分配给listView
,ArrayAdapter
,其中包含null值。我想这可能就是问题所在
解决方法是,如果您不知道确切的值,请使用数组列表。这里的问题是
listArray = new String[1168];
您正在谈论的是一个恒定长度的字符串数组,并且您正在分配来自相应文件的值,显然数据可能超过或不超过
而列表数组的剩余部分将保留为null
您正在将相同的listary
分配给listView
,ArrayAdapter
,其中包含null值。我想这可能就是问题所在
解决方案是,如果您不知道确切的值,请使用Arraylist
。您的文件是否在F:
驱动器中?我想他的文件位于系统的F驱动器中,正在尝试在Emulator中读取。。。你不能那样做。。。Emulator被视为独立的虚拟系统,无法访问系统资源(可以使用adb帮助)您的文件是否被借出到F:
drive?我想他的文件位于系统的F驱动器中,正在试图在Emulator中读取。。。你不能那样做。。。Emulator被视为独立的虚拟系统,无法访问系统资源(可以使用adb帮助)很高兴帮助您。。。!!!Njoy编码。请不要叫我先生,我也在学习。很高兴帮助你。。。!!!Njoy编码。请不要叫我先生,我太有学问了。