[英]Reading String and Integer input from text file
我有一個使用BufferedReader
閱讀的文本文件。 文本文件的格式為(字符串,字符串,整數)。 我正在使用inFile.readLine()
方法讀取每一行並將其轉換為String
。 我認為我可以使用Integer.parse
提取其中的Integer
部分,但這並不是讓我使用nextLine()
,因為這是針對Scanner
而不是BufferedReader
。
這是我所擁有的:
try{
String nextLine;
String title = "";
String department = "";
int year;
BufferedReader inFile = new BufferedReader(new FileReader(inputName));
while((nextLine = inFile.readLine())!= null){
title = nextLine.nextLine();
department = nextLine.nextLine();
year = Integer.parseInt(nextLine);
newList.addCourse(new Course(title, department, year));
}
inFile.close();
}
有人知道我應該如何讀取文本文件的String
部分嗎?
最好將Scanner用於您的任務。 但是,如果標題或部門有空格,則需要指定一些定界符。
try{
String nextLine;
String title = "";
String department = "";
int year;
BufferedReader inFile = new BufferedReader(new FileReader(inputName));
Scanner in = new Scanner(inFile);
while((nextLine = inFile.readLine())!= null){
title = in.next(); //if title has spaces, you need to use next(Pattern) instead or delimiter
department = in.next(); //if department has spaces, you need to use next(Pattern) instead or delimiter
year = in.nextInt();
newList.addCourse(new Course(title, department, year));
}
inFile.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
nextLine
是一個字符串,字符串沒有nextLine
方法。 但是,為什么要在這種情況下在已經分配了下一行的字符串上調用nextLine?
while((nextLine = inFile.readLine())!= null)
如果您的信息總是以3行(標題,單位和年份)為一組,則可以執行以下操作:
while((nextLine = inFile.readLine())!= null){
title = nextLine;
department = inFile.readLine();
year = Integer.parseInt(inFile.readLine());
newList.addCourse(new Course(title, department, year));
}
但是,請確保它們始終在3行的組中,否則您將遇到異常。
最好的做法是將所有3個數據放在同一行中,並用定界符分隔,這樣您就可以簡單地執行以下操作:
String[] info;
while((nextLine = inFile.readLine()) != null)
{
info = nextLine.split(";");//; would be the delimiter
title = info[0];
department = info[1];
year = Integer.parseInt(info[2]);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.