黑马程序员技术交流社区

标题: 我的程序为什么错了? [打印本页]

作者: 李月    时间: 2012-5-7 15:47
标题: 我的程序为什么错了?
public static void reader_2()throws FileNotFoundException, IOException {
                FileReader file=new FileReader("E:/java/day05.java");
               
                Byte[] by=new Byte[1024];//这里为什么报错啊!
                int len=0;
                while((len=file.read(by))!=-1)
                {
                        System.out.println(new String(by,0,len));
                }
                file.close();
               
        }
作者: 李月    时间: 2012-5-7 15:57
谭景宾 发表于 2012-5-7 15:52
Byte[] by=new Byte[1024];// 大写开头的Byte是byte的封装类,不能用于定于数组
byte[] by=new byte[1024]; ...

改了,还是有错!
作者: 谭景宾    时间: 2012-5-7 16:08
李月 发表于 2012-5-7 15:57
改了,还是有错!

学习编程必须要先学会看文档,如果你看过文档,就应该知道字符流只有read(char[])而没有read(byte[])
读取字符流不要使用byte[]要用cha[]
作者: 周素强    时间: 2012-5-7 16:14
("E:/java/day05.java"); 字符串写错了,应该用到转义字符
改成:("E:\\java\\day05.java");
作者: 郭振    时间: 2012-5-7 16:24
public class Test      
{
        public static void main(String[]args)throws Exception{
         FileReader file=new FileReader("E:/java/day05.java");
     
     char[] by=new char[1024];//这里是char类型的不是byte     int len=0;
     while((len=file.read(by))!=-1)
     {
             System.out.println(new String(by,0,len));
     }
     file.close();
                    

        }}
作者: 欧德林    时间: 2012-5-7 16:34
FileReader 的read 方法 只有两种 read() ;read(char [] cbuf,int off,int len )

read
public int read(char[] cbuf,
                int off,
                int len)
         throws IOException将字符读入数组的某一部分。

指定者:
类 Reader 中的 read
参数:
cbuf - 目标缓冲区
off - 开始存储字符处的偏移量
len - 要读取的最多字符数
返回:
读取的字符数,如果已到达流的末尾,则返回 -1
抛出:
IOException - 如果发生 I/O 错误

把Byte[] by=new Byte[1024]; 改成 char [] by =new char [1024] ;

作者: 谭景宾    时间: 2012-5-7 16:38
楼主,不好意思。纠正下我自己的错误,Byte[]也是可以定义数组的。
你的程序错的地方只有两个。
public static void reader_2()throws FileNotFoundException, IOException {
                FileReader file=new FileReader("E:/java/day05.java");
               
                Byte[] by=new Byte[1024];
           int len=0;
                while((len=file.read(by))!=-1)
                {
                        System.out.println(new String(by,0,len));
                }
                file.close();
               
        }
作者: xiwangliujiao    时间: 2012-5-7 20:52
兄弟,给你提醒一下,这是个Java文件,所以对于文件,应该用字节流,
想用字符流进行操作必须将字节流转换为字节流,这句话应该为
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(("E:/java/day05.java")));这是比老师推荐的写法

public static void reader_2()throws FileNotFoundException, IOException {
                 FileReader file=new FileReader("E:/java/day05.java");////////兄弟,给你提醒一下,这是个Java文件,所以对于文件,应该用字节流,
//////////////////想用字符流进行操作必须将字节流转换为字节流,这句话应该为
/////BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(("E:/java/day05.java")));
                Byte[] by=new Byte[1024];//这里为什么报错啊!
                 int len=0;
                 while((len=file.read(by))!=-1)
                 {
                         System.out.println(new String(by,0,len));
                 }
                 file.close();
               
        }




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2