java IO流(二)

   IO流主要用于硬板、内存、键盘等处理设备上得数据操作,根据处理数据的数据类型的不同可以分为:字节流(抽象基类为InputStream和OutputStream)和字符流(抽象基类为Reader和Writer)。根据流向不同,可以分为:输入流和输出流。一般探讨IO流时,是按数据类型来分的。

IO流的分类:

    流向:

      输入流  (读取数据)

      输出流  (写出数据)

    数据类型:

      字节流 

        字节输入流(读取数据) InputStream

        字节输出流 (写出数据)OutputStream

      字符流

        字符输入流 (读取数据) Reader

        字符输出流 (写出数据) Writer

 字符流和字节流的主要区别:

1.字节流读取的时候,读到一个字节就返回一个字节;  字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8码表中是3个字节)时。先去查指定的编码表,将查到的字符返回。

2.字节流可以处理所有类型数据,如:图片,MP3,AVI视频文件,而字符流只能处理字符数据。只要是处理纯文本数据,就要优先考虑使用字符流,除此之外都用字节流。

一、字节流:

  1、字节输出流:FileOutputStream

构造方法:

public FileOutputStream(File file)

public FileOutputStream(String name)

public FileOutputStream(String name,boolean append):当append设为true,可以在原有文件上追加数据

Write方法:

public void write(int b) :写一个字节到文件输出流

public void write(byte[] b) :从byte[]数组中写b.length个字节到文件输出流

public void write(byte[] b, int off, int len) :从索引为off开始,写len个长度的字节到文件输出流

    void createFileOutputStream() throws IOException {
        FileOutputStream fos=new FileOutputStream("a.txt");

        fos.write("Hello World".getBytes());

        byte[] by={97,98,99,100};
        fos.write(by);

        byte[] by2={101,102,103,104,105};
        fos.write(by2,1,3);

        fos.close();
    }

最后给出加入了异常处理的字节输出流的写法:

  FileOutputStream fos= null;
        try {
            fos = new FileOutputStream("a.txt");
            fos.write("Hello World".getBytes());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if(fos!=null){
                try {
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
时间: 2025-01-08 06:16:04

java IO流(二)的相关文章

Java IO流(二)

目录 Java IO流(二) 7. 字节缓冲流 7.1 概述 7.2 BufferedOutputStream类 7.3 BufferedInputStream类 8. 文件复制练习(增强版 使用缓冲流) 9. 字符缓冲流 9.1 BufferedWriter类 9.2 BufferedReader类 10. 练习:文本排序 11. 转换流 11.1 字符编码和字符集 11.2 编码引出的问题 11.3 转换流的原理 11.4 OutputStreamWriter类 11.5 InputStre

java io流二-字符流输入输出缓冲区

/* 字符写入缓冲流 缓冲区的出现时为了提高流的操作效率. 所以在创建缓冲区之前,必须要现有流对象. Writer对应BufferedWriter Reader对应BufferedReader 该缓冲区中提供了一个换行符方法,newLine(); */ import java.io.*; class BufferedWriterDemo { public static void main(String[] args) throws IOException { FileWriter fw=new

《二》Java IO 流的分类介绍

一.根据流向分为输入流和输出流: 注意输入流和输出流是相对于程序而言的. 输出:把程序(内存)中的内容输出到磁盘.光盘等存储设备中        输入:读取外部数据(磁盘.光盘等存储设备的数据)到程序(内存)中 综合起来:   二.根据传输数据单位分为字节流和字符流 上面的也是 Java IO流中的四大基流.这四大基流都是抽象类,其他流都是继承于这四大基流的.   三.根据功能分为节点流和包装流 节点流:可以从或向一个特定的地方(节点)读写数据.如FileReader. 处理流:是对一个已存在的

Java IO流详解(二)——File类

在上一章博客中简单的介绍了Java IO流的一些特征.也就是对文件的输入输出,既然至始至终都离不开文件,所以Java IO流的使用得从File这个类讲起. File类的描述:File类是文件和目录路径名的抽象表示形式,主要用于文件和目录的创建.查找和删除等操作.即Java中把文件或者目录(文件夹)都封装成File对象.也就是说如果我们要去操作硬盘上的文件或者目录只要创建File这个类即可. 不过要注意的是File类只是对文件的操作类,只能对文件本身进行操作,不能对文件内容进行操作. 1.File

装饰器模式及JAVA IO流例子★★★☆☆

一.什么是装饰模式 通过关联机制给类增加行为,其行为的扩展由修饰对象来决定: 二.补充说明 与继承相似,不同点在于继承是在编译期间扩展父类,而装饰器模式在运行期间动态扩展原有对象: 或者说,继承是对类进行扩展,装饰模式是对对象进行扩展: 三.角色 抽象构件 具体构件 抽象装饰类 具体装饰类 说明:具体构件.抽象装饰类.具体装饰类的共同父类是抽象构件,具体装饰类继承抽象装饰类并在运行期间装饰具体构件: 四.例子 例子说明: 画家接口Painter,为抽象构件,有两个方法,获取画家描述信息及绘画:

黑马程序员-Java IO流

--Java培训.Android培训.iOS培训..Net培训.期待与您交流!-- 一.概述 Java中与IO相关的类有很多,都集中在java.io中,都是以流的形式操作的,流是有一定的顺序,像一个管道一样,它的本质是传输数据.根据数据类型的不同可以分为字节流和字符流,根据流向的不同可以分为输入流和输出流. 字符流:因为数据有不同的编码,可以对字符进行不同的操作,其本质还是基于字节流,然后再查询相应的码表.一般用于处理纯文本数据. 字节流:可以处理所有类型数据,二进制文件(图片,音频等). 输入

学习笔记-java IO流总结 转载

1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读写数据的标准方法.任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法. Java.io是大多数面向数据流的输入/输出类的主要软件包.此外,Java也对块传输提供支持,在核心库 java.nio中采用的便是块IO. 流IO的好处是简单易用,缺点是效率较低.块IO效率很高,但编程比较

java io流 分析

java io流 在java应用或者android应用中很常见,并且使用频率很高的一个模块.当时每次需要用到这个模块的时候总是有提笔忘字的感觉,不知道该用哪个流或者该用谁包装谁. 所以我就花了一点时间把这个块的结构梳理了一下.一是能让自己理清一下思路.二是以后如果还有提笔忘字的时候,看这篇文章就好了. 首先java io流分两大系统InputStream 和Reader,前者及其子类主要用于读取字节流,后者及其子类主要用于读取字符流.下面是InputSteram系的继承树 首先可以看InputS

java IO流详解(一)

从本篇博文开始,详细讲解JAVA IO流的基本操作,力求每一个例子都给大家一个DEMO,在最终完成的时候,我会贴出最终的源码,方便大家交流学习. 上一篇博文中转载了大神的博文和图片,非常好! 文章链接如下:Java IO流 下面一个个的用实例进行讲解每个IO流的基本用法. 1 File文件 public static void main(String[] args) throws IOException { File file = new File("."); myPrint(file

Java:IO流与文件基础

Java:IO流与文件基础 说明: 本文所有内容包含图片均为MrSaber自己编写,转载请练习我哦. 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象称作 输入流,可以向其中写入一个字节序列的对象称作 输出流. ? 这些字节序列的来源可以是:文件.网络连接.内存块等. ? 抽象类InputStream和OutputStream是构成输入/输出(I/O)的基础. ? 因为面向字节的流