所以我的程序应该从输入文件中说明它是什么类型的令牌。我的第二种方法应该是将键盘上的任何输入写入输出文件,直到用户键入stop。问题是我的第一个方法不会将整数输出到正确的类型。我的第二种方法只会将stop放在输出文件中。这是我的代码。任何帮助都会非常有用。
public class R16 {
public void readFile(String inputFile) {
try {
File in = new File(inputFile);
Scanner scan = new Scanner(in);
while (scan.hasNext()) {
if (scan.hasNextInt()) {
System.out.println("Integer: " + scan.nextInt());
}
if (scan.hasNext()) {
System.out.println("String: " + scan.next());
}
if (scan.hasNextDouble()) {
System.out.println("Double: " + scan.nextDouble());
}
}
scan.close();
} catch (IOException e) {
System.out.println("Error, not good");
}
}
public void writeFile(String outputFile) {
try {
File out = new File(outputFile);
PrintWriter w = new PrintWriter(out);
Scanner scan= new Scanner(System.in);
System.out.print("Enter Text: ");
while(!scan.next().equals("stop")){
w.print(scan.next());
}
w.close();
scan.close();
} catch (IOException e) {
System.out.println("Error, it just got real");
}
}
public static void main(String[] args) {
R16 test = new R16();
test.readFile(args[0]);
test.writeFile(args[1]);
}
}
答案 0 :(得分:2)
在循环中,检查stop
然后丢弃所有输入。
while(!scan.next().equals("stop")){
尝试使用类似
的内容String input;
while (!(input = scan.next()).equals("stop")) {
w.print(input);
现在在循环中,您可以访问包含输入字符串的输入变量。