Ввод потока печати в текстовый файл

// Я ищу Int в текстовом файле, отображаю этот Int на консоли, создаю текстовый файл для печати этого Int. Я получаю это вместо Int:

java.util.Scanner[delimiters=\p{javaWhitespace}+][position=666][match valid=true][need input=false][source closed=false][skipped=false][group separator=\,][decimal separator=\.][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\Q�\E][infinity string=\Q∞\E]1920: ,
public static void findName(Scanner input, String name) throws FileNotFoundException {

        boolean find = false;
        while (find == false && input.hasNext()) {
            String search = input.next();

            if (search.startsWith(name) && search.endsWith(name)) {
                PrintStream output = new PrintStream(new File(name + ".txt"));

                output.println(name + ",");

                System.out.println("1920: " + input.nextInt());
                output.println("1920: " + input + ","); // need help here. HOW DO I GET THIS TO PRINT THE SAME INT, NOT GO TO THE SECOND INT?
                System.out.println("1930: " + input.nextInt());
                output.println("1930: " + input + ",");
                System.out.println("1940: " + input.nextInt());
                output.println("1940: " + input + ",");
                System.out.println("1950: " + input.nextInt());
                output.println("1950: " + input + ",");

                System.out.println("1960: " + input.nextInt());
                output.println("1960: " + input + ",");
                System.out.println("1970: " + input.nextInt());
                output.println("1970: " + input + ",");
                System.out.println("1980: " + input.nextInt());
                output.println("1980: " + input + ",");
                System.out.println("1990: " + input.nextInt());
                output.println("1990: " + input + ",");
                System.out.println("2000: " + input.nextInt());
                output.println("2000: " + input);

                find = true;

            }
        }
        if (find == false) {
            System.out.println("name not found.");

person cscontrol    schedule 30.07.2018    source источник
comment
System.out.println(1920: + input.nextInt()); работает, но если я снова вызову его для output.println, он переместит курсор на следующий Int в файле   -  person cscontrol    schedule 30.07.2018
comment
Ваш код заставляет его печатать первый Int на консоли, а затем SECOND Int для output.println. Я хочу, чтобы он напечатал первый Int для обоих   -  person cscontrol    schedule 30.07.2018


Ответы (1)


вы печатаете объект ввода вместо int в файл.

попробуй это:

int next = input.nextInt()
System.out.println("1920: " + next );
output.println("1920: " + next + ",");
... 

Надеюсь это поможет

person Martín Zaragoza    schedule 30.07.2018