这是我的目录,大家在执行代码的时候将目录换成自己电脑上的,不过目录中最好全是英文,不能包含中文。
1.2File类创建功能 方法分类 示例代码同理,大家也要把相关的目录换成自己的。
1.3File类判断和获取功能 判断功能 获取功能 示例代码 1.4File类删除功能 方法分类 示例代码 绝对路径和相对路径的区别: 绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件。例如:E:yijizhichangjava.txt相对路径:必须使用取自其他路径名的信息进行解释。例如:myFile\java.txt 2.递归 2.1递归 递归的介绍 以编程的角度来看,递归指的是方法定义中调用方法本身的现象把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算递归的基本使用 递归的注意事项: 递归一定要有出口。否则内存溢出递归虽然有出口,但是递归的次数也不宜过多。否则内存溢出 2.2递归求阶乘 案例需求 用递归求5的阶乘,并把结果在控制台输出
代码实现 2.3递归遍历目录 案例需求 给定一个路径(E:\yijizhichang),通过递归完成遍历该目录下所有内容,并把所有文件的绝对路径输出在控制台
代码实现 3.IO流 3.1 IO流概述和分类 IO流介绍 IO:输入/输出(Input/Output) 流:是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输IO流就是用来处理设备间数据传输问题的。常见的应用:文件复制;文件上传;文件下载IO流的分类 按照数据的流向 输入流:读数据输出流:写数据按照数据类型来分 字节流 字节输入流字节输出流字符流字符输入流字符输出流IO流的使用场景如果操作的是纯文本文件,优先使用字符流如果操作的是图片、视频、音频等二进制文件。优先使用字节流如果不确定文件类型,优先使用字节流。字节流是万能的流 3.2字节流写数据 字节流抽象基类 InputStream:这个抽象类是表示字节输入流的所有类的超类OutputStream:这个抽象类是表示字节输出流的所有类的超类子类名特点:子类名称都是以其父类名作为子类名的后缀字节输出流FileOutputStream(String name):创建文件输出流以指定的名称写入文件使用字节输出流写数据的步骤创建字节输出流对象(调用系统功能创建了文件,创建字节输出流对象,让字节输出流对象指向文件)调用字节输出流对象的写数据方法释放资源(关闭此文件输出流并释放与此流相关联的任何系统资源)示例代码 3.3字节流写数据的三种方式 写数据的方法分类 示例代码 3.4字节流写数据的两个小问题 字节流写数据如何实现换行 windows: linux: mac: 字节流写数据如何实现追加写入public FileOutputStream(String name,boolean append)创建文件输出流以指定的名称写入文件。如果第二个参数为true ,则字节将写入文件的末尾而不是开头示例代码 3.5字节流写数据加异常处理 异常处理格式 try-catch-finally finally特点 被finally控制的语句一定会执行,除非JVM退出示例代码 3.6字节流读数据(一次读一个字节数据) 字节输入流 FileInputStream(String name):通过打开与实际文件的连接来创建一个FileInputStream ,该文件由文件系统中的路径名name命名字节输入流读取数据的步骤创建字节输入流对象调用字节输入流对象的读数据方法释放资源示例代码 3.7字节流复制文本文件 案例需求 把“E:yijizhichang\窗里窗外.txt”复制到模块目录下的“窗里窗外.txt”
实现步骤 复制文本文件,其实就把文本文件的内容从一个文件中读取出来(数据源),然后写入到另一个文件中(目的地)数据源: E:\yijizhichang\窗里窗外.txt --- 读数据 --- InputStream --- FileInputStream
目的地: myByteStream\窗里窗外.txt --- 写数据 --- OutputStream --- FileOutputStream
代码实现 3.8字节流读数据(一次读一个字节数组数据) 一次读一个字节数组的方法 public int read(byte[] b):从输入流读取最多b.length个字节的数据返回的是读入缓冲区的总字节数,也就是实际的读取字节个数示例代码 3.9字节流复制图片 案例需求 把“E:\yijizhichang\mn.jpg”复制到模块目录下的“mn.jpg”
实现步骤 根据数据源创建字节输入流对象根据目的地创建字节输出流对象读写数据,复制图片(一次读取一个字节数组,一次写入一个字节数组)释放资源代码实现 总结本文主要给大家介绍了Java中文件的读写方法。主要包括文件File类、递归以及IO流,并且通过大量的案例加以说明。这里需要说明的是:本文中的代码所涉及到的路径或者文件都是本人的,大家得换成自己的,并且大家可以在网上自行找一些材料作为读入或者写入的材料,不过路径最好是英文的,不要包含中文,防止JVM读取失败。这也就是本人没有贴出运行示意图的原因。不过本文中的代码都是正确的,如果大家粘贴在自己编译器报错,可能是你的路径没有,或者文件不存在,最多就是需要自己将需要的包导进去。
到此这篇关于Java中文件的读写方法之IO流详解的文章就介绍到这了,更多相关Java IO流内容请搜索七叶笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持七叶笔记!