美文网首页读书
【Java进阶营】Java之IO流

【Java进阶营】Java之IO流

作者: 管彤Java架构师 | 来源:发表于2022-06-06 16:38 被阅读0次

IO流及其概述和分类

一:IO流用来处理数据之间的传输,Java对数组的数据是用流的方式,Java用于操作流在IO包中
二:流可以分为输入流,和输出流
三:操作类型可以分为:①字节流字节流可以操作任何数据,因为计算机中任何数据都是以字节存在的 ②:字符流可以操作存在的字符流,这样比较方便
四:IO流的分类 ①InputStream ②OutputStream 字符流的抽象对象 Reader Writer
五:IO程序的书写 ①使用前,导IO包 ②使用时进行IO异常处理 ③使用后释放资源

//创建输入流对象
        FileInputStream fs=new FileInputStream(“bb.txt”);
        int b;
        //读流的过程
        while((b=fs.read())!=-1){
            System.out.print(b);
        }
        //切记要记得关流
        fs.close();

为啥要用int值去接受

因为输入流可以操作任意文件,包括图片,音频等,这些文件都是已二进制形式存储在,如果每一次读取文件都是返回的11111111,是-1的补码就会停止不读了,后面的数据读不到,所以就用int数据去接受。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

数组拷贝available方法

//在开发中不推荐使用
//创建输入输出对象
  FileInputStream fis=new FileInputStream("E\\a.txt");
  FileOutputStream fos=new FileOutputStream("E:\\b.txt");
 //把要读取的数据放在数组中
 byte by= new byte[fis.available];
 //读文件
 fis.read(by);
 //写文件
 fos.write(by);
   fis.close();
   fos.close();

创建字节缓存流

BufferedInputStream bri=new BufferedInputStream(new FileInputStream("aa.txt"));
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("bb.txt"));
int c;
while((c=bri.read())!=-1){
    bos.write(c);
}
bri.close();
bos.close();

close和flush的刷新的区别

//close具有刷新功能,在关闭流之前,就会先刷新一次缓冲区,将缓冲区字节全部都刷新在缓冲区上,在关闭close刷完后不能写了
 flush方法?
 具备刷新功能,刷完后还可以继续写
  FileInputStream filei = new FileInputStream("E:\\rec.avi");
        //创建输出流对象
        FileOutputStream fileo = new FileOutputStream("E:\\copy1.avi");
         byte arr[]=new byte[1024*8];
         int len;
         while ((len=filei.read(arr))!=-1){
             fileo.write(arr);
         }
         //close具有刷新功能,在关闭流之前,就会先刷新一次缓冲区,将缓冲区字节全部都刷新在缓冲区上,在关闭
         filei.close();
         fileo.close();

image

练习

在控制台输入文件路径, 将文件拷贝到当前目录下。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

public static void main(String [] args){
//创建字符缓冲区
   BufferedInputStream bis=new BufferedInputStream(new FileInputStream(getFile()));
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(getFile().getName()));
int b;
while((b=bis.read())!=-1){
    bos.write(b);
}
bis.close();
bos.close();
//用getFile方法区封装要获取的路劲
public static File getFile(){
    Scanner sc=new Scanner(System.in);
System.out.print("重键盘上输入路径");
    while(true){
        String line=sc.nextLine();
        File dir=new File(line);
        //增加程序的鲁邦性
        if(!dir.exists()){
            System.out.print("你输入的路径不存在");
        }else if(dir.isDirectory){
            System.out.print("你输入文件目录,请重新输入");
        }else{
            retrun file;
        }
        }
    }
} 
}

相关文章

  • 【Java进阶营】Java之IO流

    IO流及其概述和分类 一:IO流用来处理数据之间的传输,Java对数组的数据是用流的方式,Java用于操作流在IO...

  • Java之IO流详解

    title: Java之IO流详解tags: Java IO流categories: Java IO流 大多数应用...

  • Java学习总结之Java IO系统(二)

    本文接着Java学习总结之Java IO系统(一),我们继续总结Java IO系统的相关知识。 字符流(Write...

  • Java进阶-IO流

    File类 File类是io包下的一个常用类,可以对硬盘中的文件进行读取信息以及增删的操作,这里我们简单介绍几个最...

  • Java进阶

    注:采转归档,自己学习查询使用 Java进阶01 String类Java进阶02 异常处理Java进阶03 IO基...

  • Java的IO和NIO

    Java的IO和NIO 一、Java的IO Java的IO功能在java.io包下,包括输入、输出两种IO流,每种...

  • 【Java进阶营】Java 基础(三)| IO流之使用 File

    一、什么是 File 类?java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找...

  • 从0开始复习java(9)--IO

    Java的io通过java.io包下的类和接口支持。主要有输入、输出流,又分为字节流和字符流。Java的io流使用...

  • java IO入门笔记

    1.java IO流的概念,分类,类图 1.1. java IO 流的概念 java的io是实现输入和输出的基础,...

  • Java IO详解

    1 Java IO流的概念,分类 1.1 Java IO流的概念 java的IO是实现输入和输出的基础,可以方便的...

网友评论

    本文标题:【Java进阶营】Java之IO流

    本文链接:https://www.haomeiwen.com/subject/vvsmyrtx.html