IO字节流之FileInputStream和FileOutputStream

IO流原理及流的分类

  • IO是Input和Output,I/O技术非常实用,用于处理数据传输,读/写文件,网络通讯等操作;
  • java.io包提供了各种“流”类和接口,用以获取不同种类的数据,并通过方法输入或输出数据
  • 输入input:读取外部数据到程序(内存)中;
  • 输出output:将程序(内存)数据输出到磁盘,光盘等存储设备中
  • 流的分类:
    • 字节流(8bit)、字符流
    • 输入流、输出流
    • 节点流、处理流/包装流
(抽象基类) 字节流 字符流
输入流 InputStream Reader
输出流 OutputStream Writer

Java的IO 流涉及40多个类,都是由删除四个抽象类派生,这些子类名称都以其父类名作为子类名后缀

InputStream字节输入流

FileInputStream:文件输入流

package IOstream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

@SuppressWarnings({"all"})
/**
 * @Author Blueshadow
 * @Date 2021/7/29 10:28
 * @Version 1.0
 */
public class ioStream {
    public static void main(String[] args) {
        ioStream ioStream = new ioStream();
        ioStream.readFile01();
    }

    public void readFile01(){
        String filePath = "F:\\test/hello.txt";
        int readData;
        FileInputStream fileInputStream = null;//扩大作用于
        try {
            //创建FileInputStream对象,用户读取文件
            fileInputStream = new FileInputStream(filePath);
            while ((readData = fileInputStream.read()) != -1){//从输入流读取一个字节的数据,如果返回-1,就是到达文件末尾则读取截止
                System.out.print((char)readData);//将readData 转成 char类型 进行显示
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //关闭文件流,释放资源
            try {
                fileInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

OutputStream:字节输出流

FileOutputStream:文件输出流

package IOstream;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

@SuppressWarnings({"all"})
/**
 * @Author Blueshadow
 * @Date 2021/7/29 10:28
 * @Version 1.0
 *
 * 将hello world写入文件中,如果文件不存在,则创建文件
 */
public class ioStream {
    public static void main(String[] args) {
        ioStream ioStream = new ioStream();
        ioStream.writeFile01();
    }

    public void writeFile01(){
        String filePath = "F:\\test/world.txt";
        //创建对象
        FileOutputStream fileOutputStream = null;
        try {
            /**
             * 覆盖
             * 追加
             */
            fileOutputStream = new FileOutputStream(filePath,true);//通过定义append的值来确定输入的形式是 覆盖 还是 追加
            //写入一个字节
//            fileOutputStream.write('a');
            //写入字符串
            String str = "hello world";
            fileOutputStream.write(str.getBytes());//getBytes()将字符串转换成字节数组

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                fileOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

版权声明:
作者:Blueshadow
链接:https://www.nanfeng-ashuai.com/2021/07/29/io%e5%ad%97%e8%8a%82%e6%b5%81%e4%b9%8bfileinputstream%e5%92%8cfileoutputstream/
来源:小背篓
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录