如何用空间android java读取文本文件

时间:2014-11-18 08:42:37

标签: java android string inputstream

当我知道我的文件包含

时,如何将包含空格的文本文件读入int数组
  

" 22 23 29 1"

private String readFromFile() {

    String ret = "";

    try {
        InputStream inputStream = openFileInput("mywords.txt");

        if ( inputStream != null ) {
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            String receiveString = "";
            StringBuilder stringBuilder = new StringBuilder();

            while ( (receiveString = bufferedReader.readLine()) != null ) {
                stringBuilder.append(receiveString);
            }

            inputStream.close();
            ret = stringBuilder.toString();
        }
    }
    catch (FileNotFoundException e) {
        Log.e("login activity", "File not found: " + e.toString());
    } catch (IOException e) {
        Log.e("login activity", "Can not read file: " + e.toString());
    }

    return ret;
}

我用它来读到现在

3 个答案:

答案 0 :(得分:3)

对于"22 23 29 1 ",即带有空格的整数,请尝试以下代码:

String ret="22 23 29 1 ";
ret=ret.trim();
String tok[]=ret.split(" ");
for(String s:tok) {
    System.out.println(s);
}

输出

22
23
29
1

如果您需要,可以使用stringinteger解析为Integer.parseInt()

答案 1 :(得分:1)

您也可以使用Scanner

Scanner scanner = new Scanner(inputStream).useDelimiter(" ");

并且您可以使用hasNext()next()等功能来检查和阅读下一个单词。 您可以做的是创建ArrayList Integers并在next()进行解析。

类似的东西(这只是一个伪代码)

ArrayList<Integer> list = new ArrayList<Integer>();
while(scanner.hasNext()) {
    read = scanner.next();
    list.add(Integer.parseInt(read));
}
return list;

答案 2 :(得分:0)

在返回的String上调用split(" "),您将获得String数组。根据您的使用情况进行Typecast。