为什么RandomAccessFile输出乱码?
nz80 2005-09-18 07:59:15 我要对比两个txt文档的内容,如果有不相同的词,就把第一个文档中的这个词拷贝到新的txt文档中,使用RandomAccessFile方便对文件的定位,可却导致输出乱码,请问怎么办?部分代码如下:
RandomAccessFile in1 =
new RandomAccessFile("result.txt", "r");
RandomAccessFile in2=
new RandomAccessFile("result1.txt", "r");
PrintWriter out=
new PrintWriter(new FileWriter("out.txt", true));
String line1, line2;
char[] buffer1= new char[50];
char[] buffer2= new char[50];
int flag = 0;
while((line1 = in1.readLine()) != null){
while((line2 = in2.readLine()) != null){
// in2.mark(0);
for(int i = 0; i < line1.length()
&& i < line2.length(); i++){
buffer1[i]= line1.charAt(i);
buffer2[i]= line2.charAt(i);
if (buffer1[i] == ','){
if (buffer2[i] == ','){
for (int j = i; j < 50; j++)
buffer1[j] = buffer2[j] = '\n';
// String.valueOf(buffer1);
// String.valueOf(buffer2);
String s1= new String(buffer1);
String s2= new String(buffer2);
boolean tag;
tag= s1.equals(s2);
if (tag){
flag = 1;
}
}
break;
}
else{
if( buffer2[i] == ',')
break;
}
if (flag == 1){
break;
}
}
}
if (flag == 1){
flag = 0;
in2.seek(0);
}
else if (flag == 0){
out.write(line1);
out.write('\n');
in2.seek(0);
}
}
in1.close();
in2.close();
out.close();