我用JavaIO流读硬盘中的文本文件,英文及标点符号可以正常显示,但中文变成了乱码?怎么回事,是编码问题吗?怎么解决?求各位大神指教?在下感激不尽源代码
package IoTest;
import java.io.*;
public class reader {
public static void main(String[] args)throws IOException {
File in=new File("D:\\听力\\stack.txt");
System.out.println(in.exists());
System.out.println(in.canRead());
FileInputStream fin=new FileInputStream(in);
/*int b=0;
while((b=fin.read())!=-1);{
System.out.print((char)b);
}
*/
byte[] buf=new byte[20*1024];
int bytes=fin.read(buf, 0, buf.length);
for(int i=0;i
if(bytes!=-1){
System.out.print((char)buf[i]);
}
}
fin.close();
}
}
输出结果true
true
package Exam;
import java.util.*;
public class exam1 {
public static void main(String[] args) {
Stack s=new Stack();//?????????????????¢????????????????????????
s.push('a');
s.push('b');
s.push('b');
s.push('a');
char w[]={'a','b','b','a'};
int j=0;
for(int i=0;i
if((w[i]==s.pop())){
//?????????????????????????????????????????????????????????¢??
j++;//?????????????¢????????????????????????????????
}
if(j==(w.length-1)){
System.out.println("??????");
}
}
}
}
正常结果应为package Exam;
import java.util.*;
public class exam1 {
public static void main(String[] args) {
Stack s=new Stack();//容器必须使用包装类,因为容器内存放的是对象
s.push('a');
s.push('b');
s.push('b');
s.push('a');
char w[]={'a','b','b','a'};
int j=0;
for(int i=0;i
if((w[i]==s.pop())){
//先进后出,第一个和最后一个比,第二个和倒数第二个比,以此类推
j++;//计数器,如果相等的次数等于数组的个数,则是回文
}
if(j==(w.length-1)){
System.out.println("是回文");
}
}
}
}
还有一个问题就是我注释掉的部分,为什么读取不了,第二种可以。
求各位大神指教