关于Java:如何将输入流转换成int

How to convert InputStream to int

本问题已经有最佳答案,请猛点这里访问。

我在/raw文件夹中有一个名为"max_easy.txt"的txt文件,在这个文件中写了一个数字,在这个例子中写了"0"…我想要一个0为int值的var,我该怎么做?

我想这行给了我一个字符串值,如何转换它?

1
InputStream letturaEasy = getResources().openRawResource(R.raw.max_easy);


如果这就是目前为止的情况:

1
InputStream letturaEasy = getResources().openRawResource(R.raw.max_easy);

然后需要做的就是把它转换成一个字符串:

1
String result = getStringFromInputStream(letturaEasy);

最后,到int:

1
int num = Integer.parseInt(result);

顺便说一下,这里实施了getStringFromInputStream()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
private static String getStringFromInputStream(InputStream is) {

    BufferedReader br = null;
    StringBuilder sb = new StringBuilder();

    String line;
    try {

        br = new BufferedReader(new InputStreamReader(is));
        while ((line = br.readLine()) != null) {
            sb.append(line);
        }

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (br != null) {
            try {
                br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    return sb.toString();    
}


您可以使用BufferedReader从该文件中将行作为字符串读取。Integer.parseInt将它们解析为ints:

1
2
3
try(BufferedReader reader = new BufferedReader(new InputStreamReader(letturaEasy,"UTF8")) ) {
    int n = Integer.parseInt(reader.readLine());
}