我的System.out.println(info); line返回“Model_X_Sale_2014.txt”而不是文件中的信息。第一行是:“Jan 3128 1.59 3421 1.79”我是分拆字符串的新手,但是在字符串均匀分割之前出现了这个问题。
知道可能导致这种情况的原因吗?非常感谢时间。另外,有一个特殊的原因Eclipse不会让我使用try catch来处理文件吗?
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("What year would you like to review?");
int year = Integer.parseInt(keyboard.nextLine());
String fileName= "Model_X_Sale_" + year + ".txt";
Scanner scanner = new Scanner(fileName);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();//read one line at a time
MonthlySale_Baumbach input = new MonthlySale_Baumbach(line);
System.out.printf("\n%s %15.2f %s15.2f", input.getMonth(), input.getProfitX310(), input.getProfitX410());
}
scanner.close();
}
public class MonthlySale_Baumbach {
//variables
String month;
int X310_Units, X410_Units;
double X310_uPrice, X410_uPrice;
public MonthlySale_Baumbach(){}
public MonthlySale_Baumbach(String info){
System.out.println(info);
String[] st = info.split("\\s");
month = st[0];
X310_Units = Integer.parseInt(st[1]);
X310_uPrice = Double.parseDouble(st[2]);
X410_Units = Integer.parseInt(st[3]);
X410_uPrice = Double.parseDouble(st[4]);
}//end of constructor
}
答案 0 :(得分:2)
首先阅读Scanner(String)
public Scanner(String source)
构造一个新的扫描仪 生成从指定字符串扫描的值。
参数:
source
- 要扫描的字符串
您可能想要的是Scanner(File)
public Scanner(File source) throws FileNotFoundException
构造一个新的扫描仪,生成从中扫描的值 指定的文件。文件中的字节将转换为字符 使用底层平台的默认字符集。
参数:
source
- 要扫描的文件
抛出:
FileNotFoundException
- 如果找不到来源