Encoding SequenceInputStream的奇怪行为
我试图创建UTF-16编码文件的SequenceStreamEncoding SequenceInputStream的奇怪行为,encoding,inputstream,sequence,Encoding,Inputstream,Sequence,我试图创建UTF-16编码文件的SequenceStream public class sequenceStream { public static void main(String[] args) { try { File f1 = new File("C:\\Temp\\sequence1.txt"); File f2= new File("C:\\Temp\\sequence2.txt"); File f3=
public class sequenceStream {
public static void main(String[] args) {
try {
File f1 = new File("C:\\Temp\\sequence1.txt");
File f2= new File("C:\\Temp\\sequence2.txt");
File f3= new File("C:\\Temp\\sequence3.txt");
InputStream is = getSequencedInputStream(f1,f2,f3);
BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-16"));
String line;
int count=0;
while((line = br.readLine()) !=null){
count++;
System.out.println(count + " : " + line);
}
br.close();
} catch (FileNotFoundException e) {
} catch (IOException e) {
}
}
private static InputStream getSequencedInputStream(File ... files) {
Vector v = new Vector(files.length);
for (int i=0; i<files.length;i++){
if(files[i].exists()){
try {
v.add(new FileInputStream(files[i]));
} catch (FileNotFoundException e) {
}
}
}
return new SequenceInputStream(v.elements());
}
如果我只使用一个文件运行它,它可以正常工作:
InputStream is = getSequencedInputStream(f1);
输出:
1 : first file, first line
2 : first file, second line
问题标记来自哪里?我如何处理这个问题?我怀疑问题在于文件的终止。例如,在最后一行之后有换行符吗
1 : first file, first line
2 : first file, second line