JAVA IO体系是怎样的

  介绍

本篇文章给大家分享的是有JAVA IO体关系是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<李>

<>强基于字节的IO操作

癑AVA

癑AVA

<李>

<>强基于字符的IO操作

癑AVA

癑AVA

从上图可以看的到,整个JAVA IO体系都是基于字节流(<强> InputStream/OutputStream )和字符流(<强>读/写)作为基类,根据不同的数据载体或功能派生出来的。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IO常用类

<李>

<强>文件流:FileInputStream/FileOutputStream FileReader/FileWriter

这四个类是专门操作文件流的,用法高度相似,区别在于前面两个是操作字节流,后面两个是操作字符流。它们都会直接操作文件流,直接与OS底层交互。因此他们也被称为<强>节点流

注意使用这几个流的对象之后,需要关闭流对象,因为JAVA垃圾回收器不会主动回收。不过在Java7之后,可以在尝试()括号中打开流,最后程序会自动关闭流对象,不再需要显示地接近。

下面演示这四个流对象的基本用法,

 package  IO;
  
  import  java.io.FileInputStream;
  import  java.io.FileNotFoundException;
  import  java.io.FileOutputStream;
  import  java.io.FileReader;
  import  java.io.FileWriter;
  import  java.io.IOException;
  
  public  class  TestIO  {
  ,,,public  static  void  FileInputStreamTest (), throws  IOException  {
  ,,,,,,,FileInputStream  fis =, new  FileInputStream (“tmp2.txt");
  ,,,,,,,byte [], buf =, new 字节[1024];
  ,,,,,,,int  hasRead =, 0;
  ,,,,,,,
  ,,,,,,,//阅读()返回的是单个字节数据(字节数据可以直接专程int类型),但是阅读(buf)返回的是读取到的字节数,真正的数据保存在缓冲区中
  ,,,,,,,while  ((=hasRead  fis.read (buf)),祝辞,0),{
  ,,,,,,,,,,,//每次最多将1024个字节转换成字符串,这里tmp2.txt中的字符小于1024年,所以一次就读完了
  ,,,,,,,,,,,//循环次数,=,文件字符数,除以,但长度
  ,,,,,,,,,,,System.out.println (new 字符串(buf, 0,, hasRead));
  ,,,,,,,,,,/*
  ,,,,,,,,,,,,*,将字节强制转换成字符后逐个输出,能实现和上面一样的效果。但是如果源文件是中文的话可能会乱码
  ,,,,,,,,,,,,
  ,,,,,,,,,,,for  (byte  b : buf),,,, {
  ,,,,,,,,,,,,,,,char  ch =, (char) b;
  ,,,,,,,,,,,,,,,if  (ch  !=, & # 39; \ " # 39;)
  ,,,,,,,,,,,,,,,System.out.print (ch);
  ,,,,,,,,,,,}
  ,,,,,,,,,,*/,,,,,,,}
  ,,,,,,,//在最后块里亲密更安全
  ,,,,,,,fis.close ();
  ,,,}
  ,,,,
  ,,,public  static  void  FileReaderTest (), throws  IOException  {
  ,,,,,,,
  ,,,,,,,try  (
  ,,,,,,,,,,,,,,,//,在试着(),中打开的文件,,JVM会自动关闭
  ,,,,,,,,,,,,,,,FileReader  fr =, new  FileReader (“tmp2.txt")), {
  ,,,,,,,,,,,char [], buf =, new  char [32];
  ,,,,,,,,,,,int  hasRead =, 0;
  ,,,,,,,,,,,//,每个字符都占两个字节,每个字符或者汉字都是占2个字节,因此无论buf长度为多少,总是能读取中文字符长度的整数倍,不会乱码
  ,,,,,,,,,,,while  ((=hasRead  fr.read (buf)),祝辞,0),{
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

JAVA IO体系是怎样的