【发布时间】:2014-12-01 05:42:23
【问题描述】:
我正在创建一个接受用户输入 currentSales 的程序,如果它小于 1000 则转到 lowPerformer 或超过 1000 转到 highPerformer.txt 文件。我被困在 if 语句中。我不确定如何编写程序来告诉数据要保存到哪个文件。感谢您提供任何帮助。
public class HighandLowSales {
public static void main(String[] args) {
Scanner input1 = new Scanner(System.in);
Path highPerformer =
Paths.get("C:\\Users\\C\\Desktop\\IS103 "
+ "Programming Logic\\Week7\\HighSales.txt");
Path lowPerformer =
Paths.get("C:\\Users\\C\\Desktop\\IS103 Programming Logic\\"
+ "Week7\\LowSales.txt");
String delimiter = ",";
String s;
int id;
String firstName;
String lastName;
double currentSales;
final int QUIT = 999;
try {
Scanner input = new Scanner(System.in);
OutputStream output =
new BufferedOutputStream(Files.newOutputStream(highPerformer, CREATE));
OutputStream output1 =
new BufferedOutputStream(Files.newOutputStream(lowPerformer, CREATE));
BufferedWriter writer =
new BufferedWriter(new OutputStreamWriter(output));
BufferedWriter writer1 =
new BufferedWriter(new OutputStreamWriter(output1));
System.out.print("Enter employee ID number >> ");
id = input.nextInt();
while(id != QUIT) {
System.out.print("Enter first name for employee #" +
id + " >> ");
input.nextLine();
firstName = input.nextLine();
System.out.print("Enter last name for employee # " +
id + " >> ");
input.nextLine();
lastName = input.nextLine();
System.out.print("Enter current month sales in whole dollar " +
"for employee #" + id + " >> ");
input.nextLine();
currentSales = input.nextDouble();
s = id + delimiter + firstName + delimiter + lastName + delimiter
+ currentSales;
if (currentSales>1000)
writer.write(s);
writer.newLine();
writer1.newLine();
System.out.print("Enter next ID number or " + QUIT +
"to quit");
id = input.nextInt();
}
writer.close();
} catch(Exception e) {
System.out.println("Message: " + e);
}
}
}
【问题讨论】:
-
你每次都向 writer 添加一个新行,但从不向 writer1 添加一个新行。您应该在所有 if 和 else 周围添加大括号,然后查看它是否有效。
-
@AngeloNeuschitzer 我已经进行了更新,但它无法正常工作。
-
我看对了吗,您接受了一个“正确”的答案,将回答者代码包含在您的问题中,然后尝试一下?那不会很好用 :) 请将原始代码保留在其中(格式化除外,请在任何地方再次发布代码之前修复它)。否则你得到的回答者不再有效,这使他们变得糟糕,这不是他们自己的过错。
-
您应该查看“try-with-resources”,这样您就可以跳过关闭语句。
-
尝试添加“writer.flush(); writer1.flush();”直接在关闭语句之前。 (同时添加 writer1.close();)
标签: java if-statement java-io