【问题标题】:Printstream input to a text file将输入流打印到文本文件
【发布时间】:2018-07-30 15:29:18
【问题描述】:

// 我正在文本文件中搜索 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=\,] [小数分隔符=\.][正前缀=][负前缀=\Q-\E][正后缀=][负后缀=][NaN字符串=\Q�\E][无穷大字符串=\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.");

【问题讨论】:

  • System.out.println("1920:" + input.nextInt());有效,但如果我再次调用它到 output.println,它会将光标移动到文件中的下一个 Int
  • 您的代码使其在控制台上打印第一个 Int,然后将 SECOND Int 打印到 output.println。我希望它为两者打印第一个 Int

标签: java printstream


【解决方案1】:

您正在将输入对象而不是 int 打印到文件中。

试试这个:

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

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多