以下のコードで、次の例外を解決できませんでした。BufferedReader の使用方法の問題は何ですか? メインメソッド内で BufferedReader を使用しています
出力:-
ParseFileName.java:56: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown
BufferedReader buffread = new BufferedReader (new FileReader("file.txt"));
// ParseFileName is used to get the file name from a file path
// For eg: get - crc.v from "$ROOT/rtl/..path/crc.v"
import java.util.regex.Pattern;
import java.io.*;
public class ParseFileName {
//Split along /'s , and collect the last term.
public String getName (String longName) {
String splitAt = "/";
Pattern pattern1 = Pattern.compile(splitAt);
String[] parts = pattern1.split(longName);
System.out.println("\nparts.length = " + parts.length);
//Return the last element in the array of strings
return parts[parts.length -1];
}
public static void main(String[] args) {
ParseFileName superParse = new ParseFileName();
BufferedReader buffread = new BufferedReader (new FileReader("file.txt"));
String line;
while ((line = buffread.readLine())!= null) {
String fileName = superParse.getName(line);
System.out.println("\n" + line + " => " + fileName);
}
buffread.close();
}
}
更新: 以下の作品:
public static void main(String[] args) throws FileNotFoundException, IOException {
ただし、try.. catch にはまだいくつかの厄介な問題があります。
try {
BufferedReader buffread = new BufferedReader (new FileReader("file.txt"));
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex2) {
ex2.printStackTrace();
}
buffread はファイル名を取得していないようです。次のエラーが表示されます。
javac ParseFileName.java ParseFileName.java:67: cannot resolve symbol
記号 : 変数バッファリード
location: class ParseFileName
while ((line = buffread.readLine())!= null) {