三、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就行了这里就这里就不进行演示了。

时间: 2024-12-18 02:05:57

三、JAVA中的IO流,输出流的相关文章

Java中的IO流(五)

上一篇<Java中的IO流(四)>记录了一下Properties类,此类不属于IO流,它属于集合框架.接下来说一下IO流中的其它流 一,打印流PrintStream PrintStream为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式.并且此注永远不会抛出IOException. 此流的构造函数大致分三类 1,接收File文件类型的 2,接收OutputStream类型的 3,接收文件名形式的 下演示一下此流的两个方法 1 private static void functio

Java中的IO流之输入流|乐字节

亲爱的乐字节的小伙伴们,小乐又来分享Java技术文章了.上一篇写到了IO流,这篇文章着重 谈谈输入流,再下次再说输出流. 点击回顾上一篇:乐字节Java之file.IO流基础知识和操作步骤 一. 输入流 字节流和字符流的操作方式几乎完全一样,只是操作的数据单元不同而已 .字节流可 以操作所有文件,字符流仅操作纯文本. 1.抽象类:InputStream 和 Reader InputStream和Reader是所有输入流的基类,它们是两个抽象类,是所有输入流的模版,其中定义的方法在所有输入流中都可

Java中的IO流

Java中的IO流是实现输入/输出的基础. 按照流的方向不同:分为输入流和输出流. 按照处理数据单位的不同:分为字节流(8位)和字符流(16位). 按照功能不同:分为节点流和处理流 所有面向字节的流类都继承于InputStream类(输入流) 或OutputStream类(输出流),这两个类是抽象类,我们可以利用它的子类来完成不同的功能. InputStream.OutputStream都是抽象类 InputStream抽象了应用程序读取数据的方式 OutputStream抽象类应用程序写出数据

JAVA 中的IO流

Java中的IO流是用来处理设备与设备之前的数据传输,在java中以流的形式传输.流分为两类:字节流和字符流. 字节流:InputStream,OutPutSteam.(计算机内的数据都是以字节存储的,字节流可以操作任意数据) 字符流:Reader,Writer.(字符流只能操作字符,但是在实际应用中字符流比较方便) 从操作来看又可以分为:输入流和输出流. 在进行IO流操作的时候分为以下几步:1.导入IO流的包,2.进行IO流的异常处理,3.关闭IO流释放资源. 字节流 ————————————

Java中的IO流总结

Java中的IO流总结 1. 流的继承关系,以及字节流和字符流. 2. 节点流FileOutputStream和FileInputStream和处理流BufferedInputStream和BufferedOutputStream.以及对应的FileOutputWriter,FileInputReader,BufferedInputReader,BufferedOutputWriter. 3. 转换流InputStreamReader和OutputStreamWriter 一:流的继承关系 字节

整理 JAVA中的IO流 (字符流和字节流两个大类)

java中的io流分为两类,字符和字节: OutputStream和InputStream字节流的父类,抽象.OutputStream有两个提供了实现的接口closable和flushable. Writer和Reader字符流的父类,抽象.实际上在流的操作中,底层与文件进行读写的都是字节流,因为即使是字符流的对象,其最终实现读写的也是用的字节流. 操作文件的字节子类FileOutputStream和FileInputStream.记住,这里面写出和读入的都是字节. class useByteS

Java中的IO流体系

Java为我们提供了多种多样的IO流,我们可以根据不同的功能及性能要求挑选合适的IO流,如图10-7所示,为Java中IO流类的体系. 注:这里只列出常用的类,详情可以参考JDK API文档.粗体标注为常用! 图10-7 Java中的IO流体系 从上图发现,很多流都是成对出现的,比如:FileInputStream/FileOutputStream,显然是对文件做输入和输出操作的.我们下面简单做个总结: 1. InputStream/OutputStream 字节流的抽象类. 2. Reader

java中的IO流之文件复制

O(∩_∩)O哈哈~ 1.综述 一门成熟的语言肯定具备的几个模块:IO,通信,线程,UI...... Java作为一门成熟的程序语言,其IO流是比较复杂的.上个图大家感受下: 简单分析一下,IO分为两种流:字符流和字节流.字符流的父类Reader(读取到内存)和Writer(从内存输出),字节流的父类InputStream(读取到内存)和OutputStream(从内存输出),然后为了方便各种操作,比如为了文件操作,派生了文件流:为了对象操作,派生了对象流:等等.当初我也是傻傻分不清到底是Inp

Java中的IO流系统详解

Java 流在处理上分为字符流和字节流.字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组. Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换.而类 InputStreamReader 和 OutputStreamWriter 处理字符流和字节流的转换.字符流(一次可以处理一个缓冲区)一次操作比字节流(一次一个字节)效率高