0

在这里,我正在尝试编写从一个文件读取并打印到另一个文件而几乎没有修改的程序。

我必须以这样一种方式写入其他文件,即我必须在';'的下一个打印新行 特点。我尝试了下面的代码片段,但最终从';'打印换行符 特点。

这是片段

try (FileReader fr = new FileReader(file); FileWriter fw = new FileWriter(file2)) {
            while ((c = fr.read()) != -1) {
                if (c == 59) {
                    fw.write("\n");
                }
                fw.write((char) c);
            }
        }

这是我要阅读的文件片段

.menu ul li{ float:left; padding:0px; margin:0px; font-size:13px;}
.menu ul li a{ display:block; float:left; background-color:#f3d987; padding:7px 12px 5px 12px; color:#000; text-decoration:none;
margin:0 4px 0 0;
4

2 回答 2

4

你只需要在换行符之后写下字符。

try (FileReader fr = new FileReader(file); FileWriter fw = new FileWriter(file2)) {
    while ((c = fr.read()) != -1) {
        fw.write((char) c);
        if (c == 59) {
            fw.write("\n");
        }
    }
}
于 2018-08-21T11:01:43.063 回答
2

你的问题是你在写字符之前写了换行符。

try (FileReader fr = new FileReader(file); FileWriter fw = new FileWriter(file2)) {
    while ((c = fr.read()) != -1) {
        fw.write((char) c);
        if (c == ';') { // If last was semicolon also write a newline
            fw.write("\n");
        }
    }
}
于 2018-08-21T11:01:52.453 回答