A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 廖理 中级黑马   /  2012-5-7 21:28  /  2295 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 廖理 于 2012-5-7 21:49 编辑

结果很让人郁闷 请详细说说方法的特点和操作原理(兄弟们 分析原理啊)

import java.io.*;
import java.util.*;
class ReaderDemo2{
        public static void main(String[] args)throws IOException{
        
                Reader r = new FileReader("asc,txt");
                        char[] i = new char[3];
                        int num = 0;
                        while((num = r.read(i)) != -1){
                                System.out.println(new String(i));
                        }
               
                        r.close();
                        
                        
               
        }
}
打印结果:
I  l
ove
yo
u!o

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

2 个回复

倒序浏览
System.out.println(new String(i));  这里改成 new String(i,0,num);
  这样就可以了,char[] i = new char[1024];缓冲区最好设置大一点,一般设置为1024整数倍!

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
import java.io.*;
import java.util.*;
class ReaderDemo2{
        public static void main(String[] args)throws IOException{
        
                Reader r = new FileReader("asc,txt");//这里应该把 , 换成 .  吧 //你这个asc.txt 应该存放的 I love you!
                        char[] i = new char[3];
                        int num = 0;
                        while((num = r.read(i)) != -1){ //这里每次读取到3个字符存到char数组中,然后进行一次循环
                                System.out.println(new String(i));//第一次读取到:I l (I, ,l)这三个字符 然后换行输出 //第二次 读取到(o,v,e)三个字符,然后换行输出(后面以此类推),你把System.out.println换成System.out.print应该是你想要的结果
                        }
               
                        r.close();
                        
                        
               
        }
}
打印结果:
I  l
ove
yo
u!o

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马