我用java编写了一个程序来转换文件中的大写文本,但是它会删除数据而不是转换数据
但是,当我从一个文件中获取数据并将转换后的数据写入另一个文件时,它可以正常工作。
所以我有一个问题,我怎么能用一个文件来做这个。
下面是我的代码,告诉我如何更正?
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileWriter;
public class uppercase{
public static void main(String[] args) {
try {
FileReader reader = new FileReader("e.txt");
FileWriter writer = new FileWriter("e.txt");
int data;
int data2;
while((data=reader.read())!= -1) {
data2=Character.toUpperCase(data);
writer.write(data2);
}
reader.close();
writer.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2条答案
按热度按时间w6lpcovy1#
这是个坏主意,因为您正在写入的文件和读取的文件相同。您应该:
将完整的文件加载到内存中,关闭它,然后将其转储到同一个文件中。
保存到其他文件并重命名(更好)
c90pui9n2#
首先打开一个流从文件中读取,并将结果附加到
String
变量并在读取结束时,将所有数据写入文件: