Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串数组不存储文本文件中的数据_Java_Arrays_Split_Java.util.scanner - Fatal编程技术网

Java 字符串数组不存储文本文件中的数据

Java 字符串数组不存储文本文件中的数据,java,arrays,split,java.util.scanner,Java,Arrays,Split,Java.util.scanner,所以我有一些代码应该使用jfilechooser获取文本文件使用带有冒号的拆分和扫描程序作为delimeter并将数据存储到数组中。代码和文本如下所示。我添加了一段代码来测试数组长度是否小于1,并且始终小于1,即使我将其设置为存储在字符串数组中。它为什么要这样做?我如何让它将每行代码中的文本存储到一个6个间隔的数组中 else if (e.getSource()==readButton) { JFileChooser fileChooser = new JFileChooser("Loc

所以我有一些代码应该使用jfilechooser获取文本文件使用带有冒号的拆分和扫描程序作为delimeter并将数据存储到数组中。代码和文本如下所示。我添加了一段代码来测试数组长度是否小于1,并且始终小于1,即使我将其设置为存储在字符串数组中。它为什么要这样做?我如何让它将每行代码中的文本存储到一个6个间隔的数组中

else if (e.getSource()==readButton) {
    JFileChooser fileChooser = new JFileChooser("Local Disk (C:)");
    if  (fileChooser.showOpenDialog(null)==JFileChooser.APPROVE_OPTION)
    {
        empFile=fileChooser.getSelectedFile();
    }
    Scanner scan = new Scanner("empFile");
    while(scan.hasNext()) {
        String[] rowData = scan.nextLine().split(":");
        if (rowData.length < 1){
            System.out.println("error");
        }
        else if(rowData.length == 5) {
            rowData[4] = "0";
            fName = rowData[0];
            lName = rowData[1];
            position2 = rowData[2];
            firstParam = Double.parseDouble(rowData[3]);
            empNum = Integer.parseInt(rowData[4]);

            c.addEmployee(fName, lName, position2, firstParam, 0, empNum);

        }
        else {
            fName = rowData[0];
            lName = rowData[1];
            position2 = rowData[2];
            firstParam = Double.parseDouble(rowData[3]);
            secondParam = Integer.parseInt(rowData[4]);
            empNum = Integer.parseInt(rowData[5]);

            c.addEmployee(fName, lName, position2, firstParam, secondParam, empNum);

        }

    }
}
else if(例如getSource()==readButton){
JFileChooser fileChooser=newjfilechooser(“本地磁盘(C:)”);
if(fileChooser.showOpenDialog(null)=JFileChooser.APPROVE\u选项)
{
empFile=fileChooser.getSelectedFile();
}
扫描仪扫描=新扫描仪(“EMP文件”);
while(scan.hasNext()){
String[]rowData=scan.nextLine().split(“:”);
if(rowData.length<1){
System.out.println(“错误”);
}
else if(rowData.length==5){
行数据[4]=“0”;
fName=rowData[0];
lName=rowData[1];
位置2=行数据[2];
firstParam=Double.parseDouble(rowData[3]);
empNum=Integer.parseInt(rowData[4]);
c、 addEmployee(fName,lName,position2,firstParam,0,empNum);
}
否则{
fName=rowData[0];
lName=rowData[1];
位置2=行数据[2];
firstParam=Double.parseDouble(rowData[3]);
secondParam=Integer.parseInt(rowData[4]);
empNum=Integer.parseInt(rowData[5]);
c、 新增员工(fName、lName、职位2、firstParam、secondParam、empNum);
}
}
}
约翰:史密斯:制造业:6.75:120:444

贝蒂:怀特:经理:1200.00:111

斯坦:斯利米:销售额:10000.00:332

贝蒂:Boop:设计:12.50:50:244


扫描器接收的是字符串而不是变量。而不是

Scanner scan = new Scanner("empFile");
试一试


您当前正在扫描字符串“empFile”,而不是当前的实际文件。

出现问题的原因是您试图在有任何选定文件之前使用扫描仪:

 if  (fileChooser.showOpenDialog(null)==JFileChooser.APPROVE_OPTION)
 {
    empFile=fileChooser.getSelectedFile();
 }
 Scanner scan = new Scanner("empFile");
 while(scan.hasNext()){
 }
相反,您需要更改代码,以便仅在选择文件后创建扫描仪

 if  (fileChooser.showOpenDialog(null)==JFileChooser.APPROVE_OPTION)
 {
    empFile=fileChooser.getSelectedFile();

    Scanner scan = new Scanner("empFile");
    while(scan.hasNext()){
    }
}

你为什么要把EMP文件放在引文里?扫描仪扫描=新扫描仪(“EMP文件”);你是什么意思?我尝试将其更改为Scanner scan=new Scanner(empFile);但是我遇到了一个错误。您试图为作业5.txtok打开文本的文件名是什么。使empfile不带引用,并将所有其他内容放在同一if语句中(如果if语句失败,则不能使用扫描仪)。当我使用empfile而不是empfile时,我遇到了一个错误错误。错误显示“未处理的异常类型FileNotFoundException”我是否必须初始化文件empFile;?将您的代码放入try-catch块中,因为文件处理代码属于选中异常,您无法从try-catch或throwsI中逃脱我从未见过try/catch或throwsI,它会做什么?
 if  (fileChooser.showOpenDialog(null)==JFileChooser.APPROVE_OPTION)
 {
    empFile=fileChooser.getSelectedFile();
 }
 Scanner scan = new Scanner("empFile");
 while(scan.hasNext()){
 }
 if  (fileChooser.showOpenDialog(null)==JFileChooser.APPROVE_OPTION)
 {
    empFile=fileChooser.getSelectedFile();

    Scanner scan = new Scanner("empFile");
    while(scan.hasNext()){
    }
}