黑马程序员——IO流总结之一

来源:互联网 发布:海岛奇兵神庙升级数据 编辑:程序博客网 时间:2024/06/05 21:18
---------------------- android培训java培训、期待与您交流! ----------------------

经过几天的学习把IO流给学完了,总结下部分知识吧。欢迎拍砖。

字符流读取数据方式:

一个字符一个字符的读:

FileReader fr =new FileReader("Demo.text");

int ch = 0;

while((ch=fr.read())!=-1)

{

      Sop.(ch);

}

第二种:通过字符数组进行读取:

Char[] buf = newchar[1024的整数倍];

int len = 0;

while((num=fr.read(buf))!=-1)

{

      Sop(new String(buf,0,len))

}

第三种:

字符流缓冲区提供了一次读一行的方法

建立一个读取流缓冲区

BufferedReaderbufr = new BufferedReader(new FileWriter("abc.txt"));

String line = null

While((line=bufr.readLine()!=null

{

      System.out.println(line);

}

第四种方式:带行号的一次读一行的方式

FileReader fr =new FileReader("PersonDemo.java");

LineNumberReaderlnr = LineNumberReader(fr);

String line =null;

lnr.setLineNumber(100);

while((line=lnr.readLine())!=null)

{

      System.out.println(lnr.getLineNumber()+":"+line);

}

字节流的读取方式:

第一种一个字符一个字符的读

FileInputStreamfis = new FileInputStream("abc.txt");

char ch = 0;

while((ch=fis.read())!=-1)

{

      sop.(ch);

}

第二种创建一个字节数组一次读一个数组

byte[] buf = newbyte[1024的整数倍];

int len = 0;

while ((len =fis.read(buf)!=-1)

{

      sop.(new String(buf,0,len));

}

建立缓冲区字符输入输出流读法:

BufferedReaderbufr = new BufferedReader(new FileReader("asdb.txt"));

BufferedWriterbufw = new BufferedWriter(new FileReader("asdb.txt"));

String line =null;

while ((line =bufr.readLine())!=null)

{

      buwr.write();一次读一行

      bufw.newLine();可以直接换行

      bufw.flush();只要涉及缓冲区必须带刷新

}

bufr.close();

bufw.close();

建立缓冲区的字节流输入输出流的方法

BufferedInputStreambufis = new BufferedInputStream(new FileInputStream("sadf.txt"));

BufferedOutputStreambufos = new BufferedOutputStream(new FileOutputStream("sadf.txt"));

 

这里不能用readLine()他只有字符缓冲区才有。

直接一个字节字节的读

int by = 0;

while ((len=bufis.read(by)!=-1)

{

      bufos.write(by);

}

           bufos.close();

           bufis.close();

流对象有很多,不知道该用哪一个。

通过三个明确来完成。

1,明确源和目的。

      源:输入流。InputStream  Reader

      目的:输出流。OutputStream  Writer

2,操作的数据是否是纯文本。

      是:字符流。

      不是:字节流。

3,当体系明确后,在明确要使用哪个具体的对象。

      通过设备来进行区分:

      源设备:内存,硬盘。键盘

      目的设备:内存,硬盘,控制台。

装饰设计模式

当想要对已有的对象进行功能增强时;

我们可以定义一个类,把已有对象传人,基于已有的功能,并提供加强功能,

那么自定义的类称为装饰类

键盘输入输出流的读写方式:

键盘最常见的输入方式:将字节流对象转成字符流对象,使用转换流InputStreamReader

BufferedReader bufr= new BufferedReader(new FileInputStream(System.in));

BufferedWriterbufw = new BufferedWriter(new OutputStreamWriter(System.out));

String line =null;

while ((line =bufr.readLine())!=null)

{

      if ("over".eauals(line))

           break;

      bufw.write(line);

      bufw.readLine();

      bufw.flush();

}

      bufw.close();

 好了,现总结这么多,总结了一晚上了,黑马,加油!!1

---------------------- android培训java培训、期待与您交流! ----------------------