Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android活动类中使用BufferedReader_Android_Nullpointerexception_Bufferedreader - Fatal编程技术网

在android活动类中使用BufferedReader

在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 布局 活动

我想在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项目中

  • res文件夹中创建raw文件夹
  • Airport-Location3.txt放入raw文件夹中
  • 将机场位置3.txt重命名为机场位置3.txt(删除破折号)
  • 改变

    AirportLocation = new BufferedReader(new FileReader("F:/Airport-Location3.txt"));
    


    在你的Android项目中

  • res文件夹中创建raw文件夹
  • Airport-Location3.txt放入raw文件夹中
  • 将机场位置3.txt重命名为机场位置3.txt(删除破折号)
  • 改变

    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编码。请不要叫我先生,我太有学问了。