java写一程序将一个文件fin.txt拷贝至另一个文件fout.txt, 其中在所拷贝的文件中, 多个连续空格只拷贝一个空格, 制表符则用一个空格代替, 其它字符不变。 其中fin.txt和fout.txt文件都在当前目录下。 注意:java源文件与fin.txt一起压缩提交。 程序中的部分代码可编写如下: FileReader fr = new FileReader("fin.txt"); ...... int i = fr.read(); ...... if((char)i==' '||(char)i=='\t') {......}
时间: 2024-02-01 16:15:12 浏览: 118
可以使用 FileReader 和 FileWriter 来读写文件。以下是可能的解决方案:
```java
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileCopy {
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader("fin.txt");
FileWriter fw = new FileWriter("fout.txt");
int c;
boolean lastCharWasSpaceOrTab = false;
while ((c = fr.read()) != -1) {
if (c == ' ' || c == '\t') {
if (!lastCharWasSpaceOrTab) {
fw.write(' ');
lastCharWasSpaceOrTab = true;
}
} else {
fw.write(c);
lastCharWasSpaceOrTab = false;
}
}
fr.close();
fw.close();
}
}
```
在这个实现中,我们使用了一个布尔变量 `lastCharWasSpaceOrTab` 来追踪上一个字符是否是空格或制表符。如果当前字符也是空格或制表符,我们只写入一个空格,否则我们写入当前字符。这样就可以确保多个连续的空格只被拷贝为一个空格,制表符被替换为一个空格。最后,我们需要记得关闭文件读写器。
阅读全文