Java:如何读取文件并获取值出现的次数?

时间:2014-04-10 14:24:59

标签: java

我有一个.txt文件,如下所示,

红色,AppSample

黄色,AppSample

黄色,AppSample

绿色,AppExample

此处字符串在"之前,"表示","之后的状态和字符串。重新申请应用程序名称.As和 当收到更新时,相同的内容写入file.Now while 显示应用程序的状态我需要采取最高优先级,即Red。首先我需要 获取应用程序更新的所有状态,然后读取状态并获取最高状态 priorty和应用程序名称。没有得到如何做到这一点。希望我很清楚。 在下面的代码中,我将应用程序名称作为String.Then我正在读取整个文件并创建一个字符串。不确定需要做什么然后.........

String element="AppSample"

File file = new File("a.txt");
FileInputStream fis = new FileInputStream(file);
byte[] data = new byte[(int)file.length()];
fis.read(data);
fis.close();
//
String s = new String(data, "UTF-8");

if(s.contians(element){ ???Then.....

2 个答案:

答案 0 :(得分:1)

使用阅读器,例如BufferedReader并逐行阅读您的文件。

然后你可以使用String的split方法分割每一行。

这将使您的任务变得更加轻松。

请点击此处了解更多详情。

BufferedReader.readLine

String.split

答案 1 :(得分:0)

我建议使用BufferedReader。

BufferedReader br = null;

        try {

            String currentLine;
                        int count;

            br = new BufferedReader(new FileReader("a.txt"));

            while ((currentLine = br.readLine()) != null && currentLine.contains("AppSample")) {
                count++;
            }

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

System.out.println("Count: "+count);

编辑: 请参阅其他答案recommendedig以使用split()。在您编辑之前,这是您的问题的答案。要确定红色,黄色,绿色状态,您可能应该将行分为","。