Given that course.txt is accessible and contains:
Course::Java
and given the code fragment:
public static void main(String[] args){
int i;
char c;
try (FileInputStream fis = new FileInputStream("/home/magiclencourse.txt");
InputStreamReader isr = new InputStreamReader(fis);) {
while (isr.ready()) { //line n1
isr.skip(2);
i = isr.read();
c = (char) i;
System.out.print(c);
}
} catch (Exception e) {
e.printStackTrace();
}
}
What is the result?
A. ur :: va
B. ueJa
C. The program prints nothing.
D. A compilation error occurs at line n1.
題解
用「*」來表示目前檔案指標的位置。
Course::Java *
第11行whlie迴圈條件式成立。執行第12行,指標往後跳兩格。
Course::Java *
執行第13行,讀取到「u」之後,指標往後跳一格。
Course::Java *
執行第15行,輸出「u」。接著回到程式第11行,whlie迴圈條件式成立,會執行第12行,指標往後跳兩格。
Course::Java *
執行第13行,讀取到「e」之後,指標往後跳一格。
Course::Java *
執行第15行,輸出「e」。接著回到程式第11行,whlie迴圈條件式成立,會執行第12行,指標往後跳兩格。
Course::Java *
執行第13行,讀取到「J」之後,指標往後跳一格。
Course::Java *
執行第15行,輸出「J」。接著回到程式第11行,whlie迴圈條件式成立,會執行第12行,指標往後跳兩格。
Course::Java *
執行第13行,讀取到「a」之後,指標往後跳一格。
Course::Java *
執行第15行,輸出「a」。接著回到程式第11行,已經讀取到檔案結尾,所以whlie迴圈條件式不成立,跳出while迴圈。