修改上面代码,使当读入多个连续空格时只保留一个空格并写入输出文件
时间: 2024-01-16 10:03:08 浏览: 35
好的,以下是修改后的代码。在读取字符时,我们使用了一个变量 `previousChar` 来记录上一个读取的字符。如果上一个字符是空格,当前字符也是空格,则跳过当前字符,只写入一个空格到输出文件中。
```java
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileIOExample {
public static void main(String[] args) {
String inputFileName = "input.txt";
String outputFileName = "output.txt";
try (FileReader inputFileReader = new FileReader(inputFileName);
FileWriter outputFileWriter = new FileWriter(outputFileName)) {
int c;
char previousChar = ' ';
while ((c = inputFileReader.read()) != -1) {
char currentChar = (char) c;
if (currentChar == ' ' && previousChar == ' ') {
continue;
}
outputFileWriter.write(currentChar);
previousChar = currentChar;
}
System.out.println("File copied successfully!");
} catch (IOException e) {
System.out.println("Error copying file: " + e.getMessage());
}
}
}
```
在上面的修改后的示例中,我们添加了一个变量 `previousChar` 来记录上一个读取的字符。在循环中,我们读取每个字符,并将其转换为字符类型。如果当前字符是空格并且上一个字符也是空格,则跳过当前字符。否则,将当前字符写入输出文件中,并将当前字符设置为上一个字符。
注意:在写入文件时,我们使用 write() 方法写入的是字符,而不是整数。因此,在读取字符时,我们需要将整数 c 转换为字符类型。