以下のコードは、ファイル「helpFile.txt」から読み取り、「#」で表されるインデックスをチェックします。ファイルから読み取られた変数は整数 c に格納され、読み取られた文字が '#' の場合、整数を文字にキャストせずに '#' と比較されます。コンパイラがエラーを表示していないため、比較が有効かどうかを知りたいです。また、'#' がファイル内のプログラムによって検出され、'topic' と呼ばれる文字列が '#' の直後に続き、readLine() を使用して読み取られるとします。「String info = br.readLine()」は単に「topic」または「#」+「topic」になりますか? このような長い質問で申し訳ありません。大変助かりました。
boolean helpOn(String what){
private BufferedReader br;
private String info, topic;
private static PrintWriter pw = new PrintWriter(System.out, true);
int c;
br = new BufferedReader(new FileReader("helpFile.txt"));
try{
do{
//read characters until '#' is found
c = br.read();
if(***c=='#'***){ //check if the character is '#'
pw.println(c);
if((**topic=br.readLine()**).equalsIgnoreCase(what)){ //check if 'what' string is equal to 's' which is the string after '#'
while((info=br.readLine())!=null){ //print info until the end of info
if(info!=null)
pw.println(info);
}
return true;
}
}
}
while(c!=-1);
}
catch(IOException ex){
pw.println("File error.");
ex.printStackTrace();
try{
br.close();
}
catch(IOException e){
pw.println("Error closing file.");
e.printStackTrace();
}
return false;
}
try{
br.close();
}
catch(IOException ex){
pw.println("Error closing file.");
ex.printStackTrace();
}
return false; //topic not found
}