簡體   English   中英

如何使用I / O打印帶有文件號的txt文件?

[英]How to print txt file with file numbers using I/O?

我正在使用Scanner打印.txt文件,並且我想使用行號打印文件。 這是我的代碼。 我的問題是行號沒有增加。

import java.util.*;
import java.io.*;


public class List 
{
  public static void main(String[] args) throws IOException
  {
    int line =1;
    File f = new File("src/List.txt");


    Scanner sc = new Scanner(f);
    while(sc.hasNext())
    {
        int num = 1;
        System.out.print(num);
        System.out.println(sc.nextLine());
        num++;
    }
  }
}

輸出:

1Bird
1Dog
1Cat
1Elephant
1Tiger
1Zebra

預期產量:

1 Bird
2 Dog
3 Cat
4 Elephant
5 Tiger
6 Zebra

int num = 1並將其放在循環的側面...

int num = 1;
while(sc.hasNext())
{
    System.out.print(num);
    System.out.print(" "); // Separate the line number from the text
    System.out.println(sc.nextLine());
    num++;
}

這樣就不會在每次循環重啟時都將其重置...

您的錯誤似乎在循環主體中混合了linenum ,但我也建議您使用格式化的輸出,例如-

while(sc.hasNextLine()) {
  System.out.printf("%d %s%n", line++, sc.nextLine());
}

String “%d%s%n”的格式表示數字,然后是空格,然后是String ,然后是換行符。 接下來,執行后增量line 最后,從Scanner獲取nextLine()

你應該刪除

int num = 1;

因為這將在hasNext時始終將num BACK設置為1。 這就是為什么行號不會增加的原因。

刪除后,也刪除

num++;

因為沒有更多的num變量。 替換為:

line++;

我希望這有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM