BufferedReader类的讲解

BufferedReader它可以包装字符流,拥有8192字符的缓冲区,将字符流放入缓存里,先把字符读到缓存里,到缓存满了或者你flush的时候,再读入内存,就是为了提供读的效率而设计的。

用法:

//接收数据
                    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                    String msg = in.readLine();
                    if (null != msg){
                        System.out.println(msg);
                    }  

注意点:read()方法判断是否为空

        FileReader fr = new FileReader("D:\\Test.txt");
        BufferedReader bf = new BufferedReader(fr);

        int temp;
        while ((temp = bf.read()) != -1){
            System.out.println(bf.readLine());
        }

结果每行的第一个字符都没有显示出来,原因:(temp=bf.read())!=-1  每次都会先读取一个字节出来,所以后面的bf.readLine()读取的就是每行少一个字节.

String msg = null;
   while ((msg=bf.readLine())!=null){
    System.out.println(msg);
   }
时间: 2024-10-09 20:27:26

BufferedReader类的讲解的相关文章

Java JUC之Atomic系列12大类实例讲解和原理分解

Java JUC之Atomic系列12大类实例讲解和原理分解 2013-02-21      0个评论       作者:xieyuooo 收藏    我要投稿 在java6以后我们不但接触到了Lock相关的锁,也接触到了很多更加乐观的原子修改操作,也就是在修改时我们只需要保证它的那个瞬间是安全的即可,经过相应的包装后可以再处理对象的并发修改,以及并发中的ABA问题,本文讲述Atomic系列的类的实现以及使用方法,其中包含: 基本类:AtomicInteger.AtomicLong.Atomic

java IO,bufferedReader类

1,掌握bufferedreader类作用 2,掌握键盘输入的基本格式. Buffer:表示缓冲区,之前的StringBuffer,缓冲区中的内容可以更改,可以提高效率. 如果要想接收任意长度的数据,而且避免乱码的产生,就可以使用bufferedreader. public class BufferedReaderextends Reader 因为输入的数据可能出现中文,所以此处使用字符流完成. System.in本身表示的是InputStream(字节流),现在要求接收的是字符流,需要将字节流

JAVA BufferedReader 类从标准输入读取数据

1,建立输入流: BufferedReader localReader = new BufferedReader( new InputStreamReader(System.in)); System.in 表示标准输入,一般指键盘. 建立输入流,从标准输入读取数据到缓冲区中. 当在标准输入中输入一行字符串时,按回车之后,这行数据就会被读取到缓冲区中. 比如: abc  \r\n(表示按下回车键) 那么msg就会赋值为 abc String msg = null; while ((msg = lo

[Aaronyang] 写给自己的WPF4.5 笔记19[Visual类图文并茂讲解]

文章虽小,内容还好,且看且珍惜. 当界面上使用数千个矢量图形,例如实时统计图,粒子碰撞,比如超级玛丽游戏,图像一直在绘,过量的使用WPF的元素系统和Shape类会使用程序变慢,所以我们需要使用Visual类手动进行渲染. Visual类是很多WPF元素的父类.所以掌握它当然很重要了. Visual的开销小于Geometry小于Path Visual作为抽象类,有UIElement这个子类,也有Viewport3DVisual类(3D知识中的) 放置Visual的对象的容器:ContainerVi

java中匿名类的讲解

匿名内部类也就是没有名字的内部类 正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写 但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 实例1:不使用匿名内部类来实现抽象方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 abstract class Person {     public abstract void eat(); } class Child extends Person {     public void eat()

设计模式入门前提之UML类图讲解

一什么是uml: UML(unified model language)统一建模语言.是一种标准的图形化建模语言.主要用于软件的分析和设计,用定义完善的符号来图形化展示软件系统.UML不涉及编程问题,即与语言平台无关,就使得开发人员可以专注于建立软件系统的模型和结构.结构图中比较常用的时类图和对象图,行为图比较常用的有用例图,状态图,顺序图. 二类图学习: 类图分为三大部分:类名,属性名,方法 各个类之间的关系有以下这些1 is-a 关系:继承关系 2 接口和实现之间的关系:跟继承的区别在于线条

Scala的类层级讲解

Scala的类层级 Scala里,每个类都继承自通用的名为Any的超类. 因为所有的类都是Any的子类,所以定义在Any中的方法就是"共同的"方法:它们可以被任何对象调用. Scala还在层级的底端定义了一些类,如Null和Nothing,扮演通用的子类. 即,Any是所有其他类的超类,Nothing是所有其他类的子类. 类层级图如下: Any类 层级的顶端是Any类,定义了下列方法: final def ==(that: Any): Boolean final def !=(that

0x50 动态规划(0x5C 计数类DP)例题3:装饰围栏(题解)(计数类DP讲解,确定第k个排列)

计数类DP一般就是确定DP状态,DP出排名范围,然后不断逼近. 题意 题目链接 [题目描述] 有 N 块长方形的木板,长度分别为1,2,-,N,宽度都是1. 现在要用这 N 块木板组成一个宽度为 N 的围栏,满足在围栏中,每块木板两侧的木板要么都比它高,要么都比它低. 也就是说,围栏中的木板是高低交错的. 我们称"两侧比它低的木板"处于高位,"两侧比它高的木板"处于低位. 显然,有很多种构建围栏的方案. 每个方案可以写作一个长度为N的序列,序列中的各元素是木板的长度

python中的类简单讲解

类似其它的语言, Python 中的函数使用小括号( () )调用.函数在调用之前必须先定义.如果函数中没有 return 语句, 就会自动返回 None 对象.      Python 是通过引用调用的. 这意味着函数内对参数的改变会影响到原始对象.不过事实上只有可变对象会受此影响, 对不可变对象来说, 它的行为类似按值调用. 如何定义函数 def function_name([arguments]): "optional documentation string" function