java - 读取文本文件并将其拆分为数组 - Android

标签 java android arrays text split

我已经回答了很多这些问题,但似乎仍然无法弄清楚。我有一个文本文件分成几行。每行由 5 条数据组成,用“,”分隔。我正在尝试读取此文件并将信息拆分为以下形式的字符串数组:

String [][] xyz = new String [5][100]; 

请有人帮我提供一个简单的解决方案!?谢谢!!! :)

数据示例:

John,22,1953,Japan,Green
Anna,18,2012,Mexico,Blue
Sam,34,1976,San Francisco,Pink

示例代码:

公共(public)无效readFile(){

    AssetManager manger;
    String line = null;

    try {
        manger = getAssets();
        InputStream is = manger.open("data.txt");
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);
        while ((line = br.readLine()) != null) {
            values.add(line.split(","));
            //System.out.print(value);

        }
        br.close();


        String[] array = values.toArray(new String[20];


    } catch (IOException e1) {
        Toast.makeText(getBaseContext(), "Problem!", Toast.LENGTH_SHORT).show();
    }
}

错误

07-24 06:26:56.524: E/AndroidRuntime(27203): 致命异常:main 07-24 06:26:56.524:E/AndroidRuntime(27203):java.lang.ArrayIndexOutOfBoundsException:长度= 10;索引=10 07-24 06:26:56.524:E/AndroidRuntime(27203):在com.testingReadArray.weebly.testingReadArray.MainActivity.readFile(MainActivity.java:182) 07-24 06:26:56.524:E/AndroidRuntime(27203):在com.testingReadArray.weebly.testingReadArray.MainActivity $ planOnClickListener.onItemSelected(MainActivity.java:148) 07-24 06:26:56.524:E/AndroidRuntime(27203):在android.widget.AdapterView.fireOnSelected(AdapterView.java:895) 07-24 06:26:56.524: E/AndroidRuntime(27203): 在 android.widget.AdapterView.access$200(AdapterView.java:50) 07-24 06:26:56.524: E/AndroidRuntime(27203): 在 android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:863) 07-24 06:26:56.524:E/AndroidRuntime(27203):在android.os.Handler.handleCallback(Handler.java:615) 07-24 06:26:56.524:E/AndroidRuntime(27203):在android.os.Handler.dispatchMessage(Handler.java:92) 07-24 06:26:56.524:E/AndroidRuntime(27203):在android.os.Looper.loop(Looper.java:137) 07-24 06:26:56.524:E/AndroidRuntime(27203):在android.app.ActivityThread.main(ActivityThread.java:4867) 07-24 06:26:56.524:E/AndroidRuntime(27203):在java.lang.reflect.Method.invokeNative( native 方法) 07-24 06:26:56.524:E/AndroidRuntime(27203):在java.lang.reflect.Method.invoke(Method.java:511) 07-24 06:26:56.524: E/AndroidRuntime(27203): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007) 07-24 06:26:56.524:E/AndroidRuntime(27203):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774) 07-24 06:26:56.524:E/AndroidRuntime(27203):在dalvik.system.NativeStart.main( native 方法)

最佳答案

您可以使用 BufferedReader 读取每一行,然后使用 .split(','); 方法分割该行。

一些伪代码:

BufferedReader bfr = new BufferedReader(InputStreamReader/FileReader...);
String line = null;
int index = 0;
String [][] xyz = new String [100][5];

while ( (line = bfr.readLine()) != null) {
    if (index < xyz.length) xyz[index] = line.split(",");
    index++;
}   

希望这有帮助!

关于java - 读取文本文件并将其拆分为数组 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17824936/

相关文章:

php - PHP 和 MySQL 中的高级统计

java - 具有多个客户端的中央身份验证服务器,使用资源所有者密码凭据 oauth 流程

java - 如何将自定义数据保存到文本文件?

java - 返回值不正确的递归方法

android - Expo:React Native 中 VideoPlayer 上的自定义按钮

c - 在 C 中打印动态数组

java - 父类(super class)访问检查失败 : class com. sun.javafx.sg.prism.web.NGWebView

android - 升级到支持库 23.2.0 后,在偏移量 4752 处解码未知类型代码 6881391

Java异常失败快速方法

javascript - 如何从另一个功能更改按钮?