字符串读写文件Java空空间
我想从文件中读取数据,然后写入文件。输入文件如下所示
<ORLANDO> <0%>
As I remember, Adam, it was upon this fashion bequeathed me by will but poor a thousand crowns, and, as thou sayest,
<ORLANDO>
"A s I r e m e m b e r A d a m i t w a s u p o n t h i s f a s h i o n b e q u e a t h e d m e b y w i l l b u t p o o r a t h o u s a n d c r o w n s a n d a s t h o u s a y e s t c h a r g e d m y b r o t h e r o n ..."
我已经编写了一个java程序来删除带有标记的行,并用空格替换任何标点符号。但是写出来的每封信之间都有一个空格,而且在行间有很多空行。如何移除它们。请帮忙
String line=null;
try {
BufferedReader br=new BufferedReader( new FileReader("filename"));
PrintWriter writer = new PrintWriter(new FileWriter("filename"));
try {
while((line=br.readLine())!=null)
{
if(!line.contains("<"))
{
line=(line.replaceAll("\\p{Punct}",""));
writer.println(line);
writer.flush();
}
}
}
# 1 楼答案
是否以正确的编码打开写入的文件。它看起来像是你写UTF-8,然后用ASCII或任何ISO-8859编码打开它
# 2 楼答案
默认情况下,使用PrintWriter打开文件时,它会截断文件。您可以将其设置为append,但无论哪种方式,都不能重写以这种方式读取的文件
相反,您应该创建一个新文件并写入该文件。完成后,您可以删除原件并重命名副本(或删除完全相同的副本)
如果您编写了UTF-16,但将其读取为ASCII或UTF-8,则会发生这种情况。避免这种情况的方法是不要使用UTF-16,这不是默认值