import java.io.*;public class CharArrayReaderDemo{
public static void main(String args[]) throws IOException{
String s="abcdefghijklmnopqrstuvwxyz";
int a=s.length();
char c[]=new char[a];
s.getChars(0,a,c,0);
CharArrayReader in1=new CharArrayReader(c);
CharArrayReader in2=new CharArrayReader(c);
int i;
while((i=in1.read())!=-1){
System.out.print((char)i);
}
System.out.println();
while((in2.read())!=-1){
System.out.print((char)(in2.read()));
}
}
} in1和in2读取的怎么不一样啊?
public static void main(String args[]) throws IOException{
String s="abcdefghijklmnopqrstuvwxyz";
int a=s.length();
char c[]=new char[a];
s.getChars(0,a,c,0);
CharArrayReader in1=new CharArrayReader(c);
CharArrayReader in2=new CharArrayReader(c);
int i;
while((i=in1.read())!=-1){
System.out.print((char)i);
}
System.out.println();
while((in2.read())!=-1){
System.out.print((char)(in2.read()));
}
}
} in1和in2读取的怎么不一样啊?
System.out.print((char)(in2.read()));
}
}
} 你读的是第2、4、6、8.....个字符
while((in2.read())!=-1){ \\第一次进入:in2.read()=a
System.out.print((char)(in2.read())); \\这里又进行一次read。输出in2.read()=b
}
所以最后b值 应为 bdfhjlnprtvxz
解决办法:
while((in2.read())!=-1){
System.out.print((char)(in2.read()));
改为:
byte temp;
while((temp=in2.read())!=-1){
System.out.print((char)temp);