我收到的错误是"未报告的异常ioexception;必须保持或宣布被扔掉#34;它是提供的路径或try-catch块中的错误。
import java.io.*;
import java.util.regex.*;
class RegexMobileExtractor {
public static void main(String[] args) {
try {
Pattern p = Pattern.compile("(0|9)?[7-9][0-9]{9}");
PrintWriter pw = new PrintWriter("C:\\Users\\HP\\Desktop\\CODE\\JAVA_EX\\copy\\output.txt");
BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\HP\\Desktop\\CODE\\JAVA_EX\\copy\\input.txt"));
//PrintWriter pw = new PrintWriter("output.txt");
//BufferedReader br = new BufferedReader(new FileReader("input.txt"));
String line = br.readLine();
while( line!= null) {
Matcher m = p.matcher(line);
while(m.find()) {
pw.println(m.group());
}
line = br.readLine();
}
pw.flush();
pw.close();
//br.close();
} catch (FileNotFoundException obj) {
System.out.println("errr occured");
}
}
}
答案 0 :(得分:1)
这行代码:br.readLine();
可能会抛出IOException
。这是chacked exception
并且编译器强制您处理它,这就是为什么您必须添加额外的catch
块:
catch (IOException e) {
e.printStackTrace();
}
答案 1 :(得分:0)
更改行
} catch (IOException obj) {
System.out.println("errr occured");
}
到
map2_if
由于IOException是FileNotFoundException类的父级,因此您将处理这两种异常。
另外,请考虑使用会自动关闭文件的try-with-resources。