Java输出编号行格式

Java输出编号行格式,java,io,Java,Io,我正在处理一个任务,要求请求一个文件名,然后获取该文件并将其输出到一个.txt文件中,该文件的行格式如下: [001] [002] 我已经拼凑了一段代码来让程序工作,但我似乎无法让它以要求的格式编写。任何帮助都将不胜感激 这是到目前为止我的代码 try { System.out.println("Enter your source code file name: "); Scanner scanner = new Scanner(System.in);

我正在处理一个任务,要求请求一个文件名,然后获取该文件并将其输出到一个.txt文件中,该文件的行格式如下:

[001]

[002]

我已经拼凑了一段代码来让程序工作,但我似乎无法让它以要求的格式编写。任何帮助都将不胜感激

这是到目前为止我的代码

    try {

        System.out.println("Enter your source code file name: ");
        Scanner scanner = new Scanner(System.in);
        String file = scanner.nextLine();

        in = new FileInputStream(file);
        out = new FileOutputStream(file + ".txt");

        int c;
        while ((c = in.read()) != -1) {
            out.write(c);
        }

    } catch (IOException e) {
        System.out.println("Error!");

    }

您只需要一个计数器来计算行数:

BufferedReader in = new BufferedReader(new FileReader(fileName));
BufferedWriter out = new BufferedWriter(new FileWriter(fileName + '.txt');
String line;
while ((line = in.read()) != -1) {
     counter++;
     out.write(String.format(..., counter, line)+"\r\n");
}

有关
String.format()
方法的更多信息,请查看此您只需要一个计数器来计算行数:

BufferedReader in = new BufferedReader(new FileReader(fileName));
BufferedWriter out = new BufferedWriter(new FileWriter(fileName + '.txt');
String line;
while ((line = in.read()) != -1) {
     counter++;
     out.write(String.format(..., counter, line)+"\r\n");
}

有关
String.format()
方法的更多信息,请查看此尝试使用BufferedReader/BufferedWriter来更轻松地读写文本行,如下所示:

    String txtName = "test";
    String txtNumbered = "test1";
    try
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(txtName+".txt")));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(txtNumbered+".txt")));
        int count = 0;

        String line = br.readLine();
        while(line != null)
        {
            count++;
            bw.write(count+" "+line+"\r\n");
            line = br.readLine();
        }

        br.close();
        bw.close();

    }catch(IOException e)
    {
        System.out.println(e);
    }

尝试使用BufferedReader/BufferedWriter来更轻松地读写文本行,如下所示:

    String txtName = "test";
    String txtNumbered = "test1";
    try
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(txtName+".txt")));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(txtNumbered+".txt")));
        int count = 0;

        String line = br.readLine();
        while(line != null)
        {
            count++;
            bw.write(count+" "+line+"\r\n");
            line = br.readLine();
        }

        br.close();
        bw.close();

    }catch(IOException e)
    {
        System.out.println(e);
    }


您不应该同时读取和写入文件,最好先读取它,在内存中进行更改,然后将其写入file@Draken他们不是同一个文件…很好的一点,错过了附加的.txt。与其使用
FileInputStream
,不如使用
BufferedReader
FileReader
。这样就可以很容易地阅读句子。目前最大的问题是,你正在逐字逐行阅读,这既慢又难。如果输入文件的行数超过999行(小于10000行),那么如果编号以
[0001]
开头,有更好的技术一次读取一整行,而不是您必须执行该工作?换句话说,是否需要前导0?不应同时读取和写入文件,最好先读取文件,在内存中进行更改,然后将其写入file@Draken他们不是同一个文件…很好的一点,错过了附加的.txt。与其使用
FileInputStream
,不如使用
BufferedReader
FileReader
。这样就可以很容易地阅读句子。目前最大的问题是,你正在逐字逐行阅读,这既慢又难。如果输入文件的行数超过999行(小于10000行),那么如果编号以
[0001]
开头,有更好的技术一次读取一整行,而不是您必须执行该工作?换句话说,是否需要开头的0?请注意不要提供OP的完整答案,记住这是一个家庭作业问题,因此他们确实需要做一些计算!那么我应该删除这个Answare吗?我是新来的,我会感谢你的指导。我想他们已经从前面的答案中找到了答案,尽管这有点不那么直观,因为他们强迫他们使用
String.format()
(他们无论如何都应该学习)。保留您的答案,下次再考虑好吧,谢谢,伙计,下次我会考虑您的话。谢谢@theVoid,我已经为这个问题挣扎了两天了,我确实修改了您的代码以包含字符串。format()为了让计数器以正确的格式显示。请注意不要提供OP的完整答案,记住这是一个家庭作业问题,所以他们确实需要做一些计算!那么我应该删除这个Answare吗?我是新来的,我会感谢你的指导。我想他们已经从前面的答案中找到了答案,尽管这有点不那么直观,因为他们强迫他们使用
String.format()
(他们无论如何都应该学习)。保留你的答案,下次再考虑好吧,谢谢,伙计,我下次会考虑你的话。谢谢@theVoid,我已经为这个问题挣扎了两天了,我修改了你的代码,加入了字符串.format(),让计数器以正确的格式显示。