有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有一本书。txt文件如下所示

红色,AppSample

黄色,AppSample

黄色,AppSample

绿色,例如

此处,前面的字符串表示状态,后面的字符串表示应用程序名称。以及 当收到更新时,同样的内容会写入文件。现在 显示应用程序的状态,我需要采用红色的最高优先级。首先,我需要 获取应用程序更新的所有状态,然后读取状态并获取具有最高 优先级和应用程序名称。不明白这是怎么做到的。希望我清楚。 在下面的代码中,我将应用程序名作为字符串。然后我读取整个文件并创建一个字符串。不确定需要做什么,然后

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) 个答案

  1. # 1 楼答案

    我建议使用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);
    

    编辑: 请参阅建议使用split()的其他答案。这是您编辑问题之前的答案。要确定红色、黄色和绿色状态,您可能应该在“,”处拆分行

  2. # 2 楼答案

    使用阅读器,例如BufferedReader,逐行读取文件

    然后可以使用String的split方法拆分每一行

    这将使你的任务更容易

    请参阅此处了解更多详细信息

    BufferedReader.readLine

    String.split