现在需要从某一文本文件内读取所有内容 例如一篇文章
用输入输出流FileReader读取的话  下面有段代码FileReader fr=new FileReader(path);
char[] c=new char[];//这里的长度怎么判断并且去定义  假如随便定义一个整数的话 有可能造成读取不完整 或者读取的数据达不到这个长度而系统用""代替//用while读取的话 麻烦还得连接每次读取出来的字符
fr.read(c);
System.out.println(c);
现在这个文件里有 一段字符串"呵呵你好";
在事先不知道的情况下 c字符数组的长度怎么初始化 如果短了 则丢失数据,长了则多出无用的""  尤其是在对该字符数组加密的时候 尤为郁闷
请给出解决办法    或者更高效的读取办法

解决方案 »

  1.   

    不能整行读取么?
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;public class A {
        public static void readline(String file){
            try{
            FileReader fr = new FileReader(file);
            BufferedReader br = new BufferedReader(fr);     
            String readoneline;
            int l;
            while((l = br.read()) != -1){
                readoneline = br.readLine();
                System.out.println(readoneline);
            }        br.close();
            fr.close();
            }catch(IOException e){
                e.printStackTrace();
            }
        }
        public static void main(String [] args){
            readline("dd.txt");
        }
    }
      

  2.   

    上面的代码有点问题,因为while里面用了read所以总是会漏掉每行第一个字符,修改了代码:
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;public class A {
        public static void readline(String file){
            try{
            FileReader fr = new FileReader(file);
            BufferedReader br = new BufferedReader(fr);     
            String readoneline;
            while((readoneline = br.readLine()) != null){
                
                System.out.println(readoneline);
            }        br.close();
            fr.close();
            }catch(IOException e){
                e.printStackTrace();
            }
        }
        public static void main(String [] args){
            readline("dd.txt");
        }
    }
      

  3.   

    怎么老是看不清楚标题呢   我是说用FileReader来读取  BufferedReader来读取就太简单了  我只是想弄明白FileReader
      

  4.   

    拜托 你的标题有写只用FileReader吗?要弄清楚这个类可以去看源码和API,看它有哪些方法char data[] = new char[1024];
    FileReader fr = new FileReader("d.txt");
    int num = fr.read(data); 
    System.out.println("Characters read= "+num);为什么总有人喜欢钻牛角尖呢,有其他更好的选择还非要用这个类
      

  5.   

    回复楼上  我只是向搞明白FileReader罢了 呵呵 谢谢了  帖子就结了