如何按行

时间:2017-12-08 12:05:27

标签: java string

我正在阅读一个看起来像这样的Java文本文件,

" Q1。您将获得一个包含1000列和100万行的列车数据集。数据集基于分类问题。您的经理要求您减少此数据的维度,以便减少模型计算时间。您的机器有内存限制。你会怎么做? (您可以自由地做出实际假设。)

Q2。 PCA需要轮换吗?如果有,为什么?如果不旋转组件会发生什么?

Q3。您将获得一个数据集。数据集具有缺失值,其沿着中值的1个标准偏差扩散。有多少百分比的数据不受影响?为什么? "

现在,我想读取此文件,然后将每个句子(问题)存储在字符串数组中。我怎么能在java中做到这一点?

我试过了,

String mlq = new String(Files.readAllBytes(Paths.get("MLques.txt")));
String[] mlq1=mlq.split("\n\n");

但这不起作用。

3 个答案:

答案 0 :(得分:0)

File file = new File("C:\\MLques.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
String st;
while ((st = br.readLine()) != null) {
    System.out.println(st + "\n");
}

我认为它会奏效。

答案 1 :(得分:0)

这是我项目中的一段代码。

public static List<String> readStreamByLines(InputStream in) throws IOException {
    return IOUtils.readLines(in, StandardCharsets.UTF_8).stream()
                  .map(String::trim)
                  .collect(Collectors.toList());
}

但是!!! 如果您的文件非常大,那么将所有内容收集到List并不好。您必须逐行阅读InputStream并为每一行执行所需操作。

答案 2 :(得分:0)

试试这个

String mlq = new String(Files.readAllBytes(Paths.get("MLQ.txt")));
    String[] mlq1=mlq.split("\r\n\r\n");
    System.out.println(mlq1.length);
    System.out.println(Arrays.toString(mlq1));

这应该通过2行的线间隙来实现。