从文本文件读取并尝试使用printWriter写入另一个文件将导致空白文件

Phasevii

我的任务如下:

编写一个程序,该程序读取附加的文本文件并写出单独的文本文件(使用名字的名字和姓氏作为文件名)。新的文本文件应包含与输入文件相同的所有文本行,并附加一个行号作为该行的第一个字符。

例如:如果您的输入行显示为:

这是一个测试

您的输出应为

  1. 这是一个测试

我已经写了我认为主要是功能代码的代码-运行时会编译并创建要写入的新文件,但是该文件为空白(包含0个字节)。阅读有关该问题的信息后,我尝试确保已关闭/清除了我的printWriter和输入/输出流。我现在不确定循环是否有问题或在错误的位置调用了close方法。任何帮助表示赞赏。

代码如下:

package module6lecture;

import java.util.Scanner;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class ReadWriteProgram {

public static void main(String[] args) {
    try
    {
        FileInputStream fis = new FileInputStream("C:\\Users\\Reid\\Desktop\\Chapter11.txt");
        FileOutputStream fos = new FileOutputStream("C:\\Users\\Reid\\Desktop\\rulicny.txt");
        Scanner scan = new Scanner(fis);
        PrintWriter pw = new PrintWriter(fos);
        int lineNumber = 1;
        while(scan.hasNextLine());
        {
            String stringRead = scan.nextLine();
            pw.println(lineNumber + ": " + stringRead);
            lineNumber++;
        }
        pw.close();
    }
    catch(FileNotFoundException fnf)
    {
        System.out.println("Unable to find Chapter11.txt. Exiting...");
        fnf.printStackTrace();
    }
}
}

免责声明:我是新手。

普什莫

while循环后有分号

while(scan.hasNextLine());
//                       ^

这使其成为无限循环,因为它表示空指令,就像

while(scan.hasNextLine()){}

所以你永远不会真正进入

{
    String stringRead = scan.nextLine();
    pw.println(lineNumber + ": " + stringRead);
    lineNumber++;
}

块,然后编写代码,这意味着您没有在结果文件中写入任何内容,甚至没有关闭它。使用创建的空文件时所拥有的一切

FileOutputStream fos = new FileOutputStream("C:\\Users\\Reid\\Desktop\\rulicny.txt");

因此,请删除该分号。


顺便说一句,如果让您使用IDE格式代码,则可以轻松发现此类错误。Eclipse将您的示例格式化为

while (scan.hasNextLine())
    ;
{
    String stringRead = scan.nextLine();
    pw.println(lineNumber + ": " + stringRead);
    lineNumber++;
}

如您所见,这表明您的循环实际上执行了空语句而不是代码块,这非常好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Java格式化文本文件内容后,如何读取文本文件内容并写入另一个文本文件?

Python:读取CSV文件并写入另一个文本文件

从文本文件中读取特定列的数据并写入另一个文本文件tcl

在文本文件中读取多行,然后在另一个文本文件中写入

如何部分读取一个文本文件并将其写入另一个文本文件

Java IO:使用扫描仪和printWriter复制文本文件的内容并将其放在另一个文本文件中

从文本文件复制并将行编号写入另一个文件

如何从文本文件排序并写入另一个文本文件Java

使用批处理文件将数据从一个文本文件提取到另一个文本文件

如何从一个文本文件读取然后在一个控制台应用程序中写入另一个文件?

从文本文件读取,创建另一个文件

对文本文件中的名称进行排序,然后将结果写入另一个文本文件

将文本文件复制到C中的另一个文本文件时删除尾部空白

使用Automator读取文本文件并将内容复制到另一个文件夹

编写一个Bash shell脚本以读取mongodb日志文件并将其内容写入另一个文本文件

CMD 读取另一个文本文件中指定的文本

如何用C编辑在另一个文本文件中写入

将文本文件的特定部分与另一个文本文件进行比较

如何将文本文件复制到另一个文件?

将列文本文件的标题添加到另一个文件

将数据从文本文件复制到另一个文件

Powershell - 将文本放入变量中,使用文本替换另一个文本文件中的文本

如何使用powershell将字符串从文本文件传递到另一个模板文件?

将文本文件从 Android 写入 PHP 服务器是否正在创建空白文本文件?

读取文本文件,仅将那些文件移动到另一个文件夹

如何编写逐行读取文本文件并删除所有“the”字并将其写入另一个文件的程序

用另一个文件的每一行填充文本文件中的空白行

读取一个文本文件,替换其单词,输出到另一个文本文件

从文本文件读入对象的向量,在类中写入另一个txt文件