Java基础IO类之字节输入输出流

1、IO流概述java

一、IO流:输入输出流(Input/Output)数组

  流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象,即数据在设备间的传输流,app

流的本质是数据传输,根据数据传输特性将流抽象为各类类,方便更直观的进行数据操做ui

大概来讲:spa

输入流:把数据从文件读到(输入)程序中code

输出流:从程序当中把一个数据(输出)写入文件中对象

二、流的分类blog

  根据处理数据类型的不一样分为:字符流和字节流字符串

  根据数据流向不一样分为:输入流和输出流get

(1)字节流

a.字节输出流

OutputStream类的定义:

public abstract class OutputStream extends Object implements Closeable,Flushable

 

  此抽象类是表示输出字节流的全部类的超类,输出流接受输出字节并将这些字节发动到inputStream类的某个接受器

b.字节输入流

InputStream类的定义:

public abstract class InputStream implements Closeable

 

  这个抽象类是全部基于字节的输入流的超类,抽象了Java的字节输入模型。在这个类中定义了一些基本的方法。

  

FileinputStream 是它的子类 从文件系统中的某个文件中得到输入字节

举例:

 

package IODemo;

import java.io.*;
/**
 *   字节输出输入流
 * 输出流:超类OutputStream,对文件输出流的操做的子类是FileOutputStream
 * 输入流:超类InputStream,对文件输入流的操做子类是FileInputStream
 */
public class ByteStreaDemo {

    private  static void in(){
        //一、肯定目标文件
        File file = new File("D:\\test\\test.txt");

        try {
            //二、构建一个输入流对象
            InputStream in = new FileInputStream(file);

            // 读取的数据是一个字节一个字节的,因此要用一个字节数组来收
            // 至关于一个容器来装文件里面的东西 1024大小表示容器能装1024个字节 1024字节=1kb
            byte[] bytes = new byte[1024];
            int len = -1; //表示已经读取了多少个字节,若是是 -1,表示已经读取到文件的末尾
            //字符串拼接
            StringBuilder buf = new StringBuilder();
            //把数据读入到数组中,而且返回读取的字节数,当不等于-1时表示已经读取到了数据,等于-1时表示已经读完
            while ((len =  in.read(bytes)) !=-1){
               buf.append(new String(bytes)); // 根据读取到的字节数组,转换为字符串内容,而且进行拼接,添加到StringBuilder中
            }
            System.out.println(buf);

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }


    }

    private static void out(){
        //一、肯定目标文件
        File file = new File("D:\\test\\test.txt");

        try {
            // 二、构建一个文件输出流的对象
            OutputStream out = new FileOutputStream(file,true);  // 若是加上true的话表示的是在原文件内容上追加内容,若是不加ture默认是重写
            // 三、内容
            String info = "你们好,我是落魄书生!\r\n"; //window  下 \r\n 表示换行
            //四、out对象写入文件中 要字节类型 字符串转字节类型
            out.write(info.getBytes());
            System.out.println("写入成功!");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {

        out();
        in();
    }
}
相关文章
相关标签/搜索