zoukankan      html  css  js  c++  java
  • 三、JAVA中的IO流,输出流

      JAVA中java.io.*;提供数据的流式输入与输出的相关类,IO流是对于输入与输出的抽象,JAVA把这些不同来源和目标的数据都统一抽象为数据流。将输入与输出的数据统一为流的好处是程序不必关心要读取得是文件,还是网络中的数据,而是统一当作IO流来处理。

      IO流又分为字符流字节流,主要区别

    字节流 按字节处理(一次处理一个字节) 使用类OutputStream
    字符流 按字符处理(一次处理一个字符即两个字节) 使用类Writer

      其实字节流与字符流处理十分相似(即每次处理的单位不同),好多书上也是将这两个放在一起来讲。

      好了现在开始码代码!

    首先是字节操作:

      主要使用的类就是

          public abstract class OutputStream extends Object implements Closeable, Flushable

      这个类是抽象的没法进行实例化所以要用其子类通过向上转型来进行实例化,因为接下来要演示操作的是文件所以用的子类是

          public class FilterOutputStream extends OutputStream

      代码演示

    import java.io.*;
    
    public class JavaOutputStreamDemo{
        public static void main(String[] args)throws Exception{
            File f = new File("test.txt");            //获取操作文件
            OutputStream out = null;                //声明OutputStream 
            out = new FileOutputStream(f);            //通过子类的向上转型来实例化对象
            
            String hello = "hello world!!!";        //准备要写入文件的数据
            byte b[] = hello.getBytes();            //将字符串转换为字节数组
            
            out.write(b);                            //写入文件
            
            out.close();                        //关闭操作
        }
    }

      test.txt是不需要提前创建的程序会先创建文件

      打开test.txt我们机会看到刚才写入的数据

      

    接下来是字符流操作:

     主要使用的类是

        public abstract class Writer extends Object

      同样我们需要通过其子类通过向上转型来实例化

               public class FileWriter extends OutputStreamWriter

      这样看也许不明显,可以看一下继承树

      java.lang.Object

             +-java.io.Writer

                     +-java.io.OutputStreamWriter

                             +-java.io.FileWriter

    代码演示

     1 import java.io.File;
     2 import java.io.Writer;
     3 import java.io.FileWriter;
     4 
     5 public class JavaWriterDemo{                                    //抛出异常
     6     public static void main(String[] args)throws Exception{
     7         File f = new File("test.txt");                    //准备文件
     8         Writer out = null;                                //声明Writer
     9         out = new FileWriter(f);                    //通过子类来实例化对象
    10         
    11         String hello = "hello world!!";                //准备写入的字符
    12         out.write(hello);                            //写入文件
    13         
    14         out.close();                                //关闭操作
    15     }
    16 }

    运行得到结果

    以上都是以上都是对文件进行覆盖写入如想追加我们可以看一下另一种构造方法

        FileWriter(String fileName, boolean append);

        FileOutputStream(String name, boolean append);

    只需在实例化的时候将追加的参数设为true就行了这里就这里就不进行演示了。

  • 相关阅读:
    【Python第九篇】异步IO数据库队列缓存
    【Python第八篇】线程、进程及协程
    【Python第七篇】Socket网络编程
    实验五全部代码,ajax请求
    添加员工
    联级选择
    查询,利用jquery选择器
    列表、表格单选框
    注册
    聊天框
  • 原文地址:https://www.cnblogs.com/liuxpage/p/4540932.html
Copyright © 2011-2022 走看看