我將在今年晚些時候參加USACO,而且我很可能會使用Java。但是,我沒有徹底地介紹過File I/O。 USACO堅稱我們使用這個BufferReader,PrintWriter和StringTokenizer組合來解析輸入的文本。這裏是他們顯示的代碼:如何使用BufferReader和PrintWriter組合輸入文字
import java.io.*;
import java.util.*;
class test {
public static void main (String [] args) throws IOException {
// Use BufferedReader rather than RandomAccessFile; it's much faster
BufferedReader f = new BufferedReader(new FileReader("test.in"));
// input file name goes above
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("test.out")));
// Use StringTokenizer vs. readLine/split -- lots faster
StringTokenizer st = new StringTokenizer(f.readLine());
// Get line, break into tokens
int i1 = Integer.parseInt(st.nextToken()); // first integer
int i2 = Integer.parseInt(st.nextToken()); // second integer
out.println(i1+i2); // output result
out.close(); // close the output file
System.exit(0); // don't omit this!
}
}
但是,當我將字符複製/粘貼到Netbeans中時,它沒有運行。它在「BufferedReader f = new BufferedReader ...」這行提供了一個FileNotFoundException異常。我想這是因爲「test.out」,但我不知道該如何放置它。我該如何解決?
此外,USACO表示這是解析輸入文本的最有效方式。這是真的?如在,這是真正的最有效的方式來檢索輸入的文字。我熟悉Scanner類等其他方式,但USACO堅持使用BufferedReader,PrintWriter等是最好的方法。
你知道''test.in''是你的問題輸入的輸入文件,而''test.out''是你的代碼輸出的輸出文件嗎? – 2012-07-22 02:15:00
是的,但輸入文件是什麼?它是一個單獨的類,或System.in,還是什麼? – kullalok 2012-07-22 02:19:00
您可能會首先閱讀[教程](http://docs.oracle.com/javase/tutorial/essential/io/index.html)。 – 2012-07-22 02:20:49