bufferedReader 的工作是为 K-mean 集群获取文件

Working of bufferedReader for fetching a file for K-mean clustering

我有一个 header 和两个 co-ordinates x 和 y 的数据集。我只是好奇 bufferedReader 如何在 Java 中工作,因为我从 Google 获得的以下代码在字符串变量中分别获取 Header 和数据。

File file = new File(fileName);
        fileReader = new FileReader(file);
        bufferedReader = new BufferedReader(fileReader);
        @SuppressWarnings("unused")
        String header = bufferedReader.readLine();
        String line = "";
        while(( line = bufferedReader.readLine() ) != null ){
            String[] dataArr = line.split(STR_DELIM);
...
...
...

在使用 R 进行统计时,我们需要纠正一个线性代码,其中我们提到 Header = True 并且它会自动从第 2 行开始读取。

但在 java 的情况下,我们使用 readLine() 函数。 但我不确定它是如何工作的。

我的主要问题是: 1. readLine() 函数将从数据集中读取多长时间?它会寻找 \n 来停止阅读吗? 2. 如代码所示,使用readLine()函数读取第一行后,在while循环中使用会从第二行开始吗?

任何与 bufferedReader 及其应用程序密切合作的人,请帮助我澄清这些疑问。

谢谢---

每次调用 readline() 方法都会 return 以“\n”(对于 unix)或“\r\n”(对于 windows)结尾的字符串。 它将读取直到到达流的末尾,即直到文件中有行。我认为这回答了你的第一个问题 要回答您的第二个问题,每次调用 readLine() 都会 return 来自输入流(文件)的连续行。如果没有更多行,它 return 为空。 BufferedReader 与 FileReader 相同,具有 FileReader 所缺少的附加缓冲功能。 顺便说一句,如果您正在实施 K-means 算法,我建议您看一下 MATLAB 中的 kmeans() 函数。 使用 MATLAB,您可以用不到 5 行代码实现 kmeans 算法。另外,您可以在 MATLAB 中使用 importfile() 方法来读取您的输入数据