在java中读取包含多列的txt文件

在java中读取包含多列的txt文件,java,arrays,Java,Arrays,我有一个包含多个列的文本文件(使用Python的np.savetxt获得)。我想用Java阅读它,将它存储为多维数组,循环数组中的行,并使用每次迭代中检索到的值执行一些操作。我以前没有Java方面的经验,如果您能帮我解决这个问题,我将不胜感激。在Python中,这类似于 a,b,c=np.loadtxt(myfile,unpack=True) 对于范围内的i(len(a)): #用a[i],b[i],c[i]做事情 我在网上发现了一些实现,它们表示,要用Java读取文件,可以使用以下代码。不幸

我有一个包含多个列的文本文件(使用Python的np.savetxt获得)。我想用Java阅读它,将它存储为多维数组,循环数组中的行,并使用每次迭代中检索到的值执行一些操作。我以前没有Java方面的经验,如果您能帮我解决这个问题,我将不胜感激。在Python中,这类似于

a,b,c=np.loadtxt(myfile,unpack=True)
对于范围内的i(len(a)):
#用a[i],b[i],c[i]做事情
我在网上发现了一些实现,它们表示,要用Java读取文件,可以使用以下代码。不幸的是,它似乎对我不起作用

publicstaticvoidreadfile(字符串[]args){
BufferedReader abc=新的BufferedReader(新文件读取器(myfile));
列表行=新的ArrayList();
而((字符串行=abc.readLine())!=null){
行。添加(行);
系统输出打印项次(数据);
}
abc.close();
}

您是否考虑过使用TSV文件解析器库,如? 以下是StackExchange上的一篇文章,其中有一些示例:
导入java.io.IOException;
导入java.nio.charset.StandardCharset;
导入java.nio.file.Files;
导入java.nio.file.path;
导入java.util.array;
导入java.util.List;
导入java.nio.file.Path;
导入静态java.util.stream.Collectors.toList;
公共类ReadFileInManyColumns{
公共静态void main(字符串[]args)引发IOException{
Path Path=Path.get(“build/asd.txt”);
List fileLines=Files.readAllLines(路径,StandardCharsets.UTF_8);
for(字符串文件行:文件行){
String[]columnArray=fileLine.split(\\s+);
List lineColumns=Arrays.stream(columnArray.collect)(toList());
doSomethingWithFileLineColumns(lineColumns);
}
}
私有静态void doSomethingWithFileLineColumns(列出lineColumns){
System.out.println(lineColumns);
}
}

这与Python无关。您只需查看
numpy
在欢迎使用堆栈溢出中保存文件的格式!StackOverflow不是免费的编码服务。你应该试着去做。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关更多信息,请参阅,并点击:)谢谢,@MicheleDorigatti。我已经相应地更新了问题。user36390,仅仅在网上找到一些代码并复制粘贴是不够的。你不能指望通过提问来学习Java。编写代码,然后带着更具体的问题回来。如果您希望获得有关发布代码的帮助,您需要准确地报告您所得到的错误、您试图修复的错误以及您具体不理解的错误。@csabinho我不知道注释的意义是什么。我已经处理过了,并在OP上留下了我为什么这么做的评论。我应该在这里回答什么?谢谢你的详细回答。尽管如此,代码似乎不起作用。通过添加
import java.nio.file.Path并替换
var path=path.get(“build/asd.txt”)带有
Path=Path.get(“build/asd.txt”)应该编译。对不起,我使用Java 9+。Java 8没有关键字“var”。
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
import java.nio.file.Path;

import static java.util.stream.Collectors.toList;

public class ReadFileInManyColumns {

  public static void main(String[] args) throws IOException {

    Path path = Paths.get("build/asd.txt");

    List<String> fileLines = Files.readAllLines(path, StandardCharsets.UTF_8);

    for (String fileLine : fileLines) {

      String[] columnArray = fileLine.split("\\s+");

      List<String> lineColumns = Arrays.stream(columnArray).collect(toList());

      doSomethingWithFileLineColumns(lineColumns);

    }
  }

  private static void doSomethingWithFileLineColumns(List<String> lineColumns) {
    System.out.println(lineColumns);
  }

}