文件输入和输出方法问题

时间:2017-04-11 19:17:28

标签: java

所以我的程序应该从输入文件中说明它是什么类型的令牌。我的第二种方法应该是将键盘上的任何输入写入输出文件,直到用户键入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]);

}

}

1 个答案:

答案 0 :(得分:2)

在循环中,检查stop然后丢弃所有输入。

while(!scan.next().equals("stop")){

尝试使用类似

的内容
String input;
while (!(input = scan.next()).equals("stop")) {
    w.print(input);

现在在循环中,您可以访问包含输入字符串的输入变量。