Java中IO流介绍

 本文适合对java有一些了解的读者。 介绍的比较粗糙。

IO流的分类  
 第一种分类 :输入流 , 输出流
 第二中类:    文件流,管道流,网络流
  
2 java中的一次流的操作创建的资源: java中的流对象 ,操作系统产生的流资源 。

所以在使用流结束后,需要调用close()。因为java的垃圾处理器只会回收java虚拟机中创建的java流对象,对于操作系统产生的流资源则不会回收。

3 输入和输出是对应用程序而言的。
 
 InputStream 所有输入流的抽象
 

方法摘要
 intavailable()
          返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。
 voidclose()
          关闭此输入流并释放与该流关联的所有系统资源。
 voidmark(int readlimit)
          在此输入流中标记当前的位置。
 booleanmarkSupported()
          测试此输入流是否支持 markreset 方法。
abstract  intread()
          从输入流中读取数据的下一个字节。
 intread(byte[] b)
          从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。
 intread(byte[] b, int off, int len)
          将输入流中最多 len 个数据字节读入 byte 数组。
 voidreset()
          将此流重新定位到最后一次对此输入流调用 mark 方法时的位置。
 longskip(long n)
          跳过和丢弃此输入流中数据的 n 个字节。


 OutputStream   所有输出流的抽象
 

方法摘要
 voidclose()
          关闭此输出流并释放与此流有关的所有系统资源。
 voidflush()
          刷新此输出流并强制写出所有缓冲的输出字节。
 voidwrite(byte[] b)
          将 b.length 个字节从指定的 byte 数组写入此输出流。
 voidwrite(byte[] b, int off, int len)
          将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流。
abstract  voidwrite(int b)
          将指定的字节写入此输出流。

  
4 文件输入输出流

 FileInputStream
 FileOutputStream 
 

举例说明 

public class DemoFileIOStream
{

 /**
  * @param args
  * @throws FileNotFoundException
  */
 public static void main(String[] args) throws Exception
 {
  // TODO Auto-generated method stub
  // 写入数据到文件中
  FileOutputStream out = new FileOutputStream("out.txt");
  out.write("www.baidu.com".getBytes());
  out.close();
  
  // 读取文件中的数据到程序中
  File f = new File("t1.txt");
  FileInputStream in = new FileInputStream(f);
  byte[] buf = new byte[1024];
  int len = in.read(buf);
  in.close();
  System.out.println(new String(buf,0,len));
  
 }

}


5  二进制文件和文本文件的区别

 0-255 之间的字符组成的文件是文本文件。
 文本文件以外的文件是二进制文件。

5.1  文本文件操作类  Reader  和 Writer

     字符操作流  FileReader  和  FileWriter   这两个类主要用于文本文件流的操作

     举例说明:

    

public class DemoReaderAndWriter
{

 /**
  * @param args
  */
 public static void main(String[] args) throws Exception
 {
  // TODO Auto-generated method stub
  FileWriter fw = new FileWriter("fw.txt");
  fw.write("十一放长假了");
  fw.close();
  
  FileReader in = new FileReader("fw.txt");
  char[] buf = new char[1024];
  int len = in.read(buf);
  in.close();
  System.out.println(new String(buf,0,len));
 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值