【问题标题】:Saving integer input in a .txt file (Java)将整数输入保存在 .txt 文件中 (Java)
【发布时间】:2016-03-08 21:50:04
【问题描述】:

我正在尝试将我输入的整数写入文本文件,但是我编辑了我的记事本的代码,将我的整数作为废话吐出。示例:

输入的整数:java.util.Scanner[delimiters=\p{javaWhitespace}+][position=1][match valid=true][need input=false][source closed=false][skipped=false]。 ..

我相信我的问题出在我用“*”标记的那一行。我将如何解决这个问题?我相信它与“String.valueOf(input)”行有关。完整代码链接如下!

for (int i = 0 ; i < 10 ; i++) {
             System.out.printf("Please enter integer %d: ", i+1);
             numbers[i] = input.nextInt();

             {
                 try
                 {
                    *output.format("Integer inputted: %s%n", String.valueOf(input));
                 }
                 catch (FormatterClosedException formatterClosedexception)
                 {
                     System.err.println("Error writing to the file. Terminating.");
                     break;
                 }
                 catch (NoSuchElementException elementException)
                 {
                     System.err.println("Invalid input. Please try again.");
                     input.nextLine();
                 }

http://pastebin.com/yV6dhSMt

【问题讨论】:

    标签: java file input output file-handling


    【解决方案1】:

    您可以使用它来写入文件:

    PrintWriter writer = new PrintWriter(fileName);
    writer.println("1");
    writer.println("2");
    writer.close();
    

    从那个文件中读取这个:

      String line, newLine;         // Variable to store a line and to check for a new line
      String[] splited;             // Variable to split text
      int lines = 0;                // Variable to check how many lines in a file
    
      Scanner myReader = new Scanner(new File(fileName));
      BufferedReader bufferedReader = new BufferedReader(new FileReader(fileName));
    
      Numbers[] numbers = new numbers[2];
    
      while ((line = bufferedReader.readLine()) != null) {
         lines++;
         for (int i = 1 ; i < 2 ; i++) {
            while (myReader.hasNextLine()) {
               newLine = myReader.nextLine();
               splited = newLine.split(",");
               numbers[i] = Integer.parseInt(splited[i]);
           }
         }
      }
    
      myReader.close();
    

    我只是在这里写的,但我记得我是这样做的。

    【讨论】:

    • imgur.com/MPrbLcO 这看起来对吗?它仍然给我一个空白文档。
    • 好吧,这是我犯的一个愚蠢的错误。现在一切都很好,但我似乎无法将整数打印到文件中,但我可以打印其他任何内容。这是我正在使用的行:“writer.printf("输入的整数是 %d\n", input);"但我收到此错误:线程“main”中的异常 java.util.IllegalFormatConversionException: d != java.util.Scanner at java.util.Formatter$FormatSpecifier.failConversion(Unknown Source)
    • 不要这样写,而是这样写: writer.printf( "Text: " + number[ i ] );
    • 好的,到目前为止一切顺利。现在您认为我不应该实现您发布的整个第二个代码,对吗?因为我已经有了 for 循环。在那种情况下我会用不同的方法吗?
    • 最初我用两种不同的方法将它们分开,然后主要调用它们,所以是的,我建议你把它们放在不同的方法中。
    猜你喜欢
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 2023-02-01
    相关资源
    最近更新 更多