将文件StringTokenizer读取到int

时间:2013-12-08 08:01:36

标签: java arrays filereader stringtokenizer

我创建了以下程序,我很少被困在这里。 这是代码:

class ProductNameQuan{
    public static void main(String[] args)
    {
        String fileName = "stockhouse.txt";
        StringTokenizer line;
        String ProdName;
        String quantity;
        try {
            BufferedReader in = new BufferedReader(new FileReader(fileName));
            line = in.readLine();
            while (line != null) {
                 ProdName = line.nextToken();
                 quantity = line.nextToken();
                 System.out.println(line);
                 line = in.readLine();
            }
       in.close();
       } catch (IOException iox)
       {
           System.out.println("Problem reading " + fileName);
       }
    }
}

我试图找到从文件读取前10个信息通过数组(不是arraylist)ProdName和数量的方法。“加上我在in.readLine()中堆叠;可能与之不兼容StringTokenizer的。 现在另一个问题是我需要数量是整数而不是字符串。

该文件包含以下内容: 球32 网球322 火球54 .. 。 。 。 。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我会把它放在一个辅助函数中,可能叫做parseString

class ProductNameQuan {
    public static void main(String[] args)
    {
        ...
        try {
            BufferedReader in = ...
            line = in.readLine();
            while (line != null) {
                ProductNameQuan.parseString(line);
            }
        }
        ...
    }

    public static void parseString(String someString) 
    {
        StringTokenizer st = new StringTokenizer(someString);
        while (st.hasMoreTokens()) {
            String token = line.nextToken();
            try {
                int quantity = Integer.parseInt(token)
                // process number
            } catch(NumberFormatException ex) {
                // process string token
        }
    }

}