1、在学习中自己写了一个函数,读取文件的内容,并将其输出到控制台上,可是输出的总是乱码,请大家多多帮助!
2、源程序如下:
public static void read(String file){
try{
FileInputStream in =new FileInputStream("c:\\"+file+".txt");
FileChannel chan=in.getChannel();
Charset latin1 = Charset.forName("US-ASCII");
CharsetDecoder decoder = latin1.newDecoder(); ByteBuffer buffer=ByteBuffer.allocate(64);
while(true){
buffer.clear();
int num=chan.read(buffer);
System.out.println("Amount :"+num);
if(num==-1) break;
CharBuffer cb = decoder.decode(buffer );
while(cb.hasRemaining()){
System.out.println(cb.get());
}
}
}
catch(Exception e){
e.printStackTrace();
}
}
2、源程序如下:
public static void read(String file){
try{
FileInputStream in =new FileInputStream("c:\\"+file+".txt");
FileChannel chan=in.getChannel();
Charset latin1 = Charset.forName("US-ASCII");
CharsetDecoder decoder = latin1.newDecoder(); ByteBuffer buffer=ByteBuffer.allocate(64);
while(true){
buffer.clear();
int num=chan.read(buffer);
System.out.println("Amount :"+num);
if(num==-1) break;
CharBuffer cb = decoder.decode(buffer );
while(cb.hasRemaining()){
System.out.println(cb.get());
}
}
}
catch(Exception e){
e.printStackTrace();
}
}
解决方案 »
- 请教个关于package和import的问题
- 为什么线条的位置改变后重画以前的线条依然显示在窗体上?
- java 写的C语言词法分析完整版
- 80分散分!!解决了就给分,其实是小问题
- 我的JAVA群,16918020,也可以谈谈.net,不过水平比较凹.
- <Thinking in JAVA>中文chm版下载
- jndi+ssl访问domino ldap报错"Bind failed: Username / password binds not allowed"?
- SWT达人入
- 初学java 请多指点...
- 急,急,急,请问何处有jBuilder5的使用资料.
- Eclipse中装有SWT/Designer,还可以装myeclipse吗?会不会冲突?
- java.util.date() 问题 急
US-ASCII该成GB2312试试看?
try{
FileInputStream fis =new FileInputStream("c:\\"+args[0]+".txt");
InputStreamReader isr = new InputStreamReader(fis,"GB2312");
BufferedReader br = new BufferedReader(isr);
while(true)
{
num = isr.read();
if(num == -1)
break;
System.out.print((char)num);
}
GBK和GB2312都可以.我用你的方法什么都显示不出来呀.
BufferedReader in = new BufferedReader(new FileReader("infilename"));
String str;
while ((str = in.readLine()) != null) {
System.out.println(str);
}
in.close();
} catch (IOException e) {
}