Java 使用Scanner和SequenceInputStream连接字段的额外空间

Java 使用Scanner和SequenceInputStream连接字段的额外空间,java,file,inputstream,java.util.scanner,printwriter,Java,File,Inputstream,Java.util.scanner,Printwriter,好的,这是第一个文件heavy1.rtf的内容: > hello, this >is > a > ?new EJava program > > C:\ heavy1.rtf 500 以下是第一个文件heavy2的内容: >first line >2nd line >more line >enough is enough >eNd heavy1和heav

好的,这是第一个文件heavy1.rtf的内容:

>  hello, this  
>is 
>a 
> ?new EJava program
>  
>         C:\ heavy1.rtf                  500
以下是第一个文件heavy2的内容:

>first line 
>2nd line 
>more line 
>enough is enough 
>eNd
heavy1和heavy2是使用另一个java程序创建的。heavy3是手工制作的,看起来像这样:

> fsd 
>fd 
>sdf 
>sdfsd
然后我运行了以下代码:

import java.io.*;
import java.util.*;
public class newfile3
{
public static void main(String[] args)
{
int x=500;
File f1 = new File("C:/ heavy1.rtf");//file already exists
File f2 = new File("C:/ heavy2.rtf");//file already exists
File f3 = new File("C:/heavy3.rtf");//file already exists
File f4 = new File("C:/ heavymerge.rtf");//does not exist
try
{
FileInputStream str1 = new FileInputStream(f1);
FileInputStream str2 = new FileInputStream(f2);
FileInputStream str3 = new FileInputStream(f3);
SequenceInputStream qstr = new SequenceInputStream(new SequenceInputStream(str1,str2),str3);

Scanner sc = new Scanner(qstr);

PrintWriter pw = new PrintWriter(f4);
while(sc.hasNextLine())
{
pw.println(sc.nextLine());
}
qstr.close();
pw.close();
sc.close();
sc = new Scanner(f4);
while(sc.hasNextLine())
{
System.out.println(sc.nextLine());
}

sc.close();
}
catch(Exception ex){}

}    

}
因此,它确实从3个文件中读取并将它们合并到heavymerge.rtf中。问题是在第一行之前有一个额外的空间

  first line
2nd line
此外,heavy 3以bizzarre的方式合并。 首先是

{\rtf1\ansi\deff0{\fonttbl…等

并打印主要内容,如

sdf\par
sdfsd\par
}

有没有一种方法可以阻止这些额外的空间,并且更加精确。 除了SequenceInputStream,还有其他链接和连接选项吗?
如果我要删除文件的某些部分,该怎么办?似乎没有任何退格。

您真的要合并不是正确的RTF文件-Microsoft的富文本格式的文件吗?我建议您使用写字板创建一个文件类型为.txt的简单文本文件,并使用该文件进行播放。您可能还想使用一个文本编辑器,可以显示特殊字符,如CR、LF等,并仔细检查文件的编码,以确保它们都是相同的。@laune我也尝试使用.txt。仍然有空格。第一行前面的空格,即第二个文件中的空格,可能是由于第一行中没有行尾CR+LF文件。当你编辑时,在最后一行留下空格,但不要按enter键。是的,谢谢。但是你能告诉我如何删除文件中的药剂,或者可以使用backspace吗?