为什么这个功能在" if"声明

时间:2015-04-08 15:22:22

标签: java if-statement

我认为原因可能是我没有关闭“tf4”的扫描仪。如果我关闭它,然后编译它,一切都好,但是当我系统发送“错误”时:系统会说:异常 在线程“main”java.lang.illegalstateexception扫描程序关闭。

用于生成tf4的代码:

public static String[] txtDocument(String args1) throws Exception{
    Scanner scannerTXT = new Scanner(new File(file1));
    String[] list4 = new String[2];

    int count3=0;
    while (scannerTXT.hasNextLine()) {
        String data = scannerTXT.nextLine();
     if(data.contains(args1)){
             count3++;
        String list1 = data;
        for(int i_t1=0;i_t1<2;i_t1++){  
            list4 = list1.split(",");
        break;
        }
          }

    if(count3==0){

            list4[0]="";  
            list4[1]="";   
    }
    scannerTXT.close();

        }

    return list4; 

    }

“tf4”是由这种方法制作的。生成“tf5”的代码的体系结构类似,但代码无法使用此命令运行(scannerTXT.close();)。

我认为这应该是重点。因为removeLineFromFile方法在离开if语句时效果很好。


1)如果我把它放在这里,它的效果非常好:

部分结构是:

public class cs1{
public static void main (String[] args) throws Exception{

         cs1 k = new cs1();
        ***k.removeLineFromFile(file1,args[0]);***   


      if(tf4[1].length()!=0){  
               if(!tf4[1].trim().equals(tf5[3].trim())){  
                ...............

2)但是如果我把它放在if-else条件下,它总是返回:“无法删除文件”

public class cs1{
public static void main (String[] args) throws Exception{


         cs1 k = new cs1();


      if(tf4[1].length()!=0){  
               if(!tf4[1].trim().equals(tf5[3].trim())){  
                  ***k.removeLineFromFile(file1,args[0]);*** 
                ...............   

有人可以告诉我为什么吗?这太奇怪了。

1 个答案:

答案 0 :(得分:0)

尝试此更改:

public static String[] txtDocument(String args1) throws Exception{
   Scanner scannerTXT = new Scanner(new File(file1));
   String[] list4 = new String[2];

    int count3=0;
    while (scannerTXT.hasNextLine()) {
        String data = scannerTXT.nextLine();
        if(data.contains(args1)){
            count3++;
            String list1 = data;
            for(int i_t1=0;i_t1<2;i_t1++){  
                list4 = list1.split(",");
                break;
            }
        }

        if(count3==0){
            list4[0]="";  
            list4[1]="";   
        }

        // Not here...   scannerTXT.close();
    }

    scannerTXT.close();  // But here
    return list4; 
}

猜猜你将摆脱异常并进一步关闭文件,以便以后删除。