我认为原因可能是我没有关闭“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]);***
...............
有人可以告诉我为什么吗?这太奇怪了。
答案 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;
}
猜猜你将摆脱异常并进一步关闭文件,以便以后删除。