java - 根据第一个单词省略数组中的元素

标签 java parsing

我在这里要做的是处理一个日志文件,在我的例子中它是鱿鱼的 access.log 。我想让我的程序查看文件中的第一个“单词”,它是访问 URL 时的 Unix 格式的时间。在程序的其他部分,我设计了一个时间类,它获取程序上次以Unix时间运行的时间,并且我想将这个时间与文件中的第一个单词进行比较,该单词恰好是Unix时间。

我对如何执行此操作的最初想法是处理文件,将其存储在数组中,然后根据文件中的第一个单词,通过从已处理文件所在的数组中删除它来省略行,然后将其放入另一个数组中

这是我到目前为止所得到的。我很确定我已经很接近了,但这是我第一次进行文件处理,所以我不太清楚我在这里做什么。

    private void readFile(File file) throws FileNotFoundException, IOException{
    String[] lines = new String[getLineCount(file)];
    Long unixTime = time.getUnixLastRun();


    String[] removedTime = new String[getLineCount(file)];


    try(BufferedReader br = new BufferedReader(new FileReader(file))) {
        int i = 0;
        for(String line; (line = br.readLine()) != null; i++) {
            lines[i] = line;

        }   
   }

    for(String arr: lines){
        System.out.println(arr);
    }
}

最佳答案

private void readFile(File file) {
    List<String> lines = new ArrayList<String>();
    List<String> firstWord = new ArrayList<String>();
    try (BufferedReader br = new BufferedReader(new FileReader(file))) {
        String sCurrentLine;
        while ((sCurrentLine = br.readLine()) != null) {
            // Adds the entire first line
            lines.add(sCurrentLine);
            // Adds the first word
            firstWord.add(sCurrentLine.split(" ")[0]);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

如果您愿意,可以使用数组。

关于java - 根据第一个单词省略数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31214666/

相关文章:

java - 如何使 Spring Integration HTTP outbound-channel-adapter 参与 Global Transaction

java - 字符串赋值和输出

java - JPA - 如何更新双向 OneToMany/ManyToOne 关系中的集合

php - PHP解析/语法错误;以及如何解决它们

iphone - IOS中Json解析错误

java - 将 XML 从网站解析到 Android 设备

java - 如何用泛型返回类型推断方法的具体返回类型?

java - 当我尝试将 java 切换为默认值时出现问题

java - Gson处理多个json根元素

在 ANTLR 中使用正确的 CSS 解析约定解析 CSS 2.1