如何让扫描器在java中读取管道分隔的txt文件

如何让扫描器在java中读取管道分隔的txt文件,java,pipe,java.util.scanner,jfilechooser,delimited-text,Java,Pipe,Java.util.scanner,Jfilechooser,Delimited Text,我一直在尝试让扫描仪使用delimiter\读取和排序管道分隔的文本文件,但我似乎无法让它排序或显示重新格式化的文件。当我打开filechooser时,它也会在我尝试导入扫描仪时抛出错误。txt文件中的数据将是字符串和整数的混合体 Scanner scanner = new Scanner("/n"); scanner.useDelimiter(Pattern.compile("[|\n]")); JTable JT = new Jtable(); List<Integer> Lis

我一直在尝试让扫描仪使用delimiter\读取和排序管道分隔的文本文件,但我似乎无法让它排序或显示重新格式化的文件。当我打开filechooser时,它也会在我尝试导入扫描仪时抛出错误。txt文件中的数据将是字符串和整数的混合体

Scanner scanner = new Scanner("/n");
scanner.useDelimiter(Pattern.compile("[|\n]"));
JTable JT = new Jtable();
List<Integer> List = new ArrayList<>();
    System.out.println(scanner.nextInt());
System.out.println(scanner.nextInt());
File readFile;     //creates file variable     
JFileChooser jFileChooser_Open = new JFileChooser();
    int option = jFileChooser_Open.showOpenDialog(this);
    readFile = jFileChooser_Open.getSelectedFile();//instantiates file and 
gets selected file from jfilechooser
     String line;
    try (FileReader inStream = new FileReader(readFile); BufferedReader 
   inBuffer = new BufferedReader(inStream)) {
        //create variable line

            while ((line = inBuffer.readLine()) != -1 ) {
while (scanner.hasNext()) {
List.add(line);
List.add(scanner.nextInt());

}
System.out.println(List);

        }
    }   catch (IOException ex) {

Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE,null, ex);
        }
Scanner Scanner=新的扫描仪(“/n”);
scanner.useDelimiter(Pattern.compile(“[\n]”);
JTable JT=新的JTable();
列表=新的ArrayList();
System.out.println(scanner.nextInt());
System.out.println(scanner.nextInt());
文件读取文件//创建文件变量
JFileChooser JFileChooser_Open=new JFileChooser();
int option=jFileChooser\u Open.showOpenDialog(此选项);
readFile=jFileChooser\u Open.getSelectedFile()//实例化文件和
从jfilechooser获取所选文件
弦线;
try(FileReader-inStream=newfilereader(readFile);BufferedReader
inBuffer=新的缓冲读取器(流内)){
//创建变量行
而((line=inBuffer.readLine())!=-1){
while(scanner.hasNext()){
列表。添加(行);
添加(scanner.nextInt());
}
系统输出打印项次(列表);
}
}捕获(IOEX异常){
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE,null,ex);
}

此外,我还希望在我的表格或文本区域中显示新格式化的字符串。但如果你们能帮我把它打印到控制台上,我会非常感激

首先,在询问有关异常的问题时,请始终在问题中包含完整的堆栈跟踪。其次,字符串永远不等于整数,因此
((line=inBuffer.readLine())!=-1)
的计算结果总是为true;您的意思可能是
((line=inBuffer.readLine())!=null)
。第三,始终确保对扫描仪的hasNext*和next*方法的调用匹配。不要将hasNext与nextInt混用。相反,请使用
hasNextInt
nextInt
。首先,当询问有关异常的问题时,请始终在问题中包含完整的堆栈跟踪。其次,字符串永远不等于整数,因此
((line=inBuffer.readLine())!=-1)
的计算结果总是为true;您的意思可能是
((line=inBuffer.readLine())!=null)
。第三,始终确保对扫描仪的hasNext*和next*方法的调用匹配。不要将hasNext与nextInt混用。相反,请使用
hasNextInt
nextInt