从文本文件中获取int并将其设置为变量

时间:2012-10-09 02:29:14

标签: android text filereader

我正在尝试获取具有以下文本的文本文件的int值:

123456789 12345678 1234567 123456 12345 1234 123 12 1

您可以看到每个数字都不同,它们位于由“空格”分隔的同一行中。我需要将值分开。得到这样的东西:

INT1 = 123456789, INT2 = 12345678, INT3 = 1234567;

等等。我不创建文本所以我不知道他们有多少数字和组,但他们总是被“空间”隔开。我知道如何阅读它。这就是我读它的方式:

try {
    TEST1 = new BufferedReader(new FileReader("/sdcard/test.txt")).readLine();

    } catch (NumberFormatException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    TEST.setText(""+scaling_available_frequencies);

我得到了这个输出

194208 776175 958253 767883 700246 243663 966618 345199 945363 459833

注意:这只是我创建的test.txt,看它是否有效。当前代码将要求用户输入路径和文件名。

现在我如何将它们设置为每组变量?

由于

2 个答案:

答案 0 :(得分:2)

这是将String解析为整数数组的一种方法:

public int[] toIntArray( String stringFromFile ){

    String[] allStrings = stringFromFile.split( "\\s" );
    int[] intArray = new int[allStrings.length];
    for( int i = 0; i < allStrings.length; ++i ){
        try{
            intArray[i] = Integer.parseInt( allStrings[i] );
        }catch( NumberFormatException e ){
            // Do whatever you think is appropriated
            intArray[i] = -1;
        }
    }
    return intArray;
}

希望这有帮助。

答案 1 :(得分:1)

我相信readLine()可以获得String。 您将需要使用String的Split()方法并传入regularExpression(空格)。

然后您将需要使用Integer.parseInt()方法并传入每个字符串以将它们解析为Integer。 你还需要一个循环来解析,直到什么都没有了