与bufferedreader和inputstream混淆。纠正我

时间:2014-03-26 21:34:47

标签: java java-ee bufferedreader

try {
        BufferedReader br = new BufferedReader(new FileReader("D:\\acontent.txt"));
        String a="";
        int c;
        Reader r = new InputStreamReader(br);
        while((c=r.read())!=-1){
            a= a + Character.toString((char)c); 
        }

尝试编写一个代码来从文件中读取并将整个内容保存在一个字符串中,我只想这样做,不想使用扫描仪类或其他方法plz建议一种方式,我在这里出错了。 。

2 个答案:

答案 0 :(得分:0)

哦,这是将文件转换为字符串的可怕方法,但正如你所说,你不接受另一种方法"这样做,你走了。

try {
        BufferedReader br = new BufferedReader( new FileReader("D:\\acontent.txt") );
        String a = "";
        int c;
        while ( ( c = br.read() ) != -1 ) {
            a = a + Character.toString( ( char ) c );
        }
        System.out.println( a );
    } catch ( Exception e ) {
         e.printStackTrace();
    }

顺便说一句,请在源代码中使用空格!

答案 1 :(得分:0)

您不需要使用InputStreamReader,因为它不会为您提供比BufferedReader更多的功能。做你想做的更好的方法应该是这样的:

try {
    BufferedReader br = new BufferedReader(new FileReader("D:\\acontent.txt"));
    StringBuilder strBuilder = new StringBuilder();
    String line = br.readLine();
    while(line != null){
        strBuilder.append(line);
        line = br.readLine();
    }
    return strBuilder.toString();
....

如果你想使用read()方法并逐个检索每个字符,那么你可以直接使用你的FileReader。

Reader接口的所有实现都有一个返回char的read()方法。只有BufferedReader具有readLine()方法才能返回完整的行。