假設有兩個類:Exam
和MainExam
(包含main
方法)。 class Exam has a constructor如何將信息從文本文件傳遞給構造函數?
public Exam(String firstName, String lastName, int ID)
MainExam
這個類從tex tfile讀取數據。例如,數據可以是:
John Douglas 57
如何將數據從文本文件傳遞給構造函數?
假設有兩個類:Exam
和MainExam
(包含main
方法)。 class Exam has a constructor如何將信息從文本文件傳遞給構造函數?
public Exam(String firstName, String lastName, int ID)
MainExam
這個類從tex tfile讀取數據。例如,數據可以是:
John Douglas 57
如何將數據從文本文件傳遞給構造函數?
下面是讀取文件中的代碼(以防萬一你實際上並不擁有它)
Scanner scanner = new Scanner(new File("C:\\somefolder\\filename.txt");
String data = scanner.nextLine();
現在,假設你的文件中的行是按以下格式:
<FirstName> <LastName> <id>
無需在每個元素任何空白,您可以使用正則表達式" "
到String#split
您data
String[] arguments = data.split(" ");
,然後將它們傳遞到構造函數(字符串,字符串,INT)
String fn = data[0];
String ln = data[1];
int id = Integer.parse(data[2]);
new Exam(fn, ln, id);
您可以參考下面的代碼片段,以文本文件的內容存儲在一個字符串對象:
BufferedReader br = null;
try {
String sCurrentLine;
br = new BufferedReader(new FileReader("C:\\testing.txt"));
while ((sCurrentLine = br.readLine()) != null) {
// System.out.println(sCurrentLine);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
該文件的內容是sCurrentLine對象現在。使用StringTokenizer,您可以使用空格作爲分隔符來區分名字,姓氏和ID。希望這可以幫助!!
您可以使用StringTokenizer
將數據分解爲由MainExam
讀取的部分。
String str; //data read by MainExam, like: John Douglas 57
String[] values = new String[3]; // size acording to your example
StringTokenizer st = new StringTokenizer(str);
int i=0;
while (st.hasMoreTokens()) {
values[i++] = st.nextToekn();
}
現在您已將數據在數組values
中分隔。
感謝您的嘗試,但StringTokenizer不允許用於我的項目 – jordan 2015-02-09 08:08:17
這意味着您甚至不允許手動標記字符串? – minarmahmud 2015-02-09 08:09:55
相同的方式,會從別的數據傳遞到構造函數。 – immibis 2015-02-09 07:50:21
作爲流或只是文件名/路徑怎麼樣? – Stig 2015-02-09 07:51:00
如何將數據放入對象? – jordan 2015-02-09 07:54:12