我正在嘗試從文件中讀取信息並從該信息中創建對象。文件中的每行約6行是不同的單位,這意味着第一組行與對象A相關,下一行設置爲對象B,依此類推。從Java中讀取文件時從中斷的位置拾取
我可以從文件中讀取並創建我的對象 - 第一組。我的問題是,我不知道如何讓讀者從創建下一個對象時遺留下來的位置拿起...
(注意:創建文件的read()方法是part創建新對象,而不是在main()或類似的東西中)。下面是代碼的相關位:
司機:
public class CSD{
public static void main (String[] argv){
Vector V=new Vector(10);
CoS jon=new CoS();
jon.display();
}//end main
}
它調用的CoS,它的構造是:
public CoS(){
try{
String fileName=getFileName();
FileReader freader=new FileReader(fileName);
BufferedReader inputFile=new BufferedReader(freader);
this.read(inputFile);
setDegree(major);
setStatus(credits);
} catch(FileNotFoundException ex){
}//end catch
}
這就要求既read()和的getFileName():
public void read(BufferedReader inputFile){
try{
int n;
super.read(inputFile);
String str=inputFile.readLine();
if (str!=null){
n=Integer.parseInt(str);
setCredits(n);
str=inputFile.readLine();
setMajor(str);
}//end if
}catch(IOException ex){}
}//end method
public String getFileName() {
Scanner scan = new Scanner(System.in);
String filename;
System.out.print("Enter the file name and path ==> ");
filename = scan.nextLine();
System.out.println("");
return filename;
}
在此先感謝,夥計們!
爲什麼不傳遞起始行號給每個構造函數呢?否則,只做一個文件讀取並立即創建所有對象,而不是將這些值傳遞給構造函數會更好。 – Joel
同意。否則,看看這裏:http://stackoverflow.com/questions/4305094/java-reading-strings-from-a-random-access-file-with-buffered-input –
喬爾,我如何讓讀者從#我會通過它?這是一個好主意,我該如何實現它? –