一 概述

已学习过的API常见对象解决的问题:

字符串String--操作文本数据。
字符串缓冲区---容器,可以存储很多的任意类型的数据--字符串。

基本数据类型包装类---解决了字符串和基本数据类型的之间的转换 "123"--parseInt--123。同时给基本数据提供更多的操作。--toBinaryString()

集合框架--对象多了,便于存储后操作。 add put Collection--Iterator Map-Set-Iterator

Math:解决数学操作。随机数。
System:获取系统属性信息。可以获取系统的分隔符。

Date,DateFormat ,Calendar: 解决日期和时间的问题。

想要对这些数据进行持久化等操作。需要一些技术完成其他设备上数据的操作。
这时就需要用到IO技术。Java中提供了IO技术的操作方式(最终依赖于操作系统)。

数据最终持久化到硬盘上,体现就是文件。
对文件进行了解。

二 层次结构图

三 字节读写和异常图

四 File

4.1 file的构造函数

package cn.itcast.io.a.file;import java.io.File;public class FileDemo {//    private static final String FILE_SEPARATOR = System.getProperty("file.separator");/*** @param args*/public static void main(String[] args) {/** File类的构造函数。* 如何创建文件对象。*/String pathName = "e:\\java_code\\day22e\\hello.java";File f1 = new File(pathName);//将Test22文件封装成File对象。注意;有可以封装不存在文件或者文件夹,变成对象。System.out.println(f1);File f2 = new File("e:\\java_code\\day22e","hello.java");System.out.println(f2);//将parent封装成file对象。File dir = new File("e:\\java_code\\day22e");File f3 = new File(dir,"hello.java");System.out.println(f3);//        File f4 = new File("e:"+FILE_SEPARATOR+"java_code"+FILE_SEPARATOR+"day22e"+FILE_SEPARATOR+"hello.java");File f5 = new File("e:"+File.separator+"java_code"+File.separator+"day22e"+File.separator+"hello.java");}}

4.2 file 方法

package cn.itcast.io.a.file;import java.io.File;
import java.text.DateFormat;
import java.util.Date;public class FileMethodDemo {/*** @param args*/public static void main(String[] args) {/** File类的方法演示。* 获取文件的信息。名称,大小,时间。* */File file = new File("Test22.java");String absPath = file.getAbsolutePath();String path = file.getPath();//File中封装的路径是什么获取到的就是什么。String filename = file.getName();long size = file.length();long time = file.lastModified();System.out.println("absPath="+absPath);System.out.println("path="+path);System.out.println("filename="+filename);System.out.println("size="+size);System.out.println("time="+time);//        毫秒值--Date--格式化--字符串文本String str_date = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG).format(new Date(time));System.out.println(str_date);}}

对文件或者文件加进行操作

package cn.itcast.io.a.file;import java.io.File;
import java.io.IOException;public class FileMethodDemo2 {/*** @param args* @throws IOException*/public static void main(String[] args) throws IOException {/** File类中的方法2.* * 对文件或者文件加进行操作。*/File file = new File("e:\\file.txt");/** 创建文件,如果文件不存在,创建 true 如果文件存在,则不创建 false。 如果路径错误,IOException。*/boolean b1 = file.createNewFile();System.out.println("b1=" + b1);// 删除。// boolean b2 = file.delete();//注意:不去回收站。慎用。// System.out.println("b2="+b2);// 需要判断文件是否存在。// boolean b3 = file.exists();// System.out.println("b3="+b3);// 对目录操作 创建,删除,判断。File dir = new File("e:\\abc");// boolean b4 = dir.mkdirs();//创建多级目录。//dir.mkdirs();// System.out.println("b4="+b4);
boolean b5 = dir.delete();// 删除目录时,如果目录中有内容,无法直接删除。// 只有将目录中的内容都删除后,保证该目录为空。这时这个目录才可以删除。System.out.println("b5=" + b5);System.out.println("-----------判断文件,目录------------");File f = new File("e:\\javahaha");//要判断是否是文件还是目录,必须先判断存在。
//        f.mkdir();
        f.createNewFile();System.out.println(f.isFile());System.out.println(f.isDirectory());}}

 listFiles()方法@获取文件单

package cn.itcast.io.a.file;import java.io.File;public class FileMethodDemo3 {/*** @param args*/public static void main(String[] args) {//需求:对给定的目录获取内部的内容。File dir = new File("e:\\java_code");//健壮性判断。1,必须是存在的,2,必须是目录。否则容易引发返回数组为null,出现NullPointerExceptionString[] names = dir.list();//获取的是目录下的当前的文件以及文件夹的名称。
//        System.out.println(names);for(String name : names){
//            System.out.println(name);
        }File[] files = dir.listFiles();//获取目录下当前文件以及文件对象。for(File file : files){System.out.println(file.lastModified());}}}

过滤器(过滤文件或者文件夹)

package cn.itcast.io.a.file;import java.io.File;import cn.itcast.io.b.filter.FilenameFilterBySuffix;public class FileMethodDemo4 {/*** @param args*/public static void main(String[] args) {/** 需求2:获取目录中的内容,但是只要.java文件。*/File dir = new File("E:\\Java_Code\\day06");File[] files = dir.listFiles(new FilenameFilterBySuffix(".JPG"));// 需要传递一个文件名过滤器 FilenameFilter对象。/*listFiles源码解析。public File[] listFiles(FilenameFilter filter) {//FilenameFilter filter = new FilenameFilterByJava()String ss[] = list();//调用了File类中的list()获取到所有的名称数组 ss。if (ss == null) return null;//健壮性判断,如果数组为null,就返回。ArrayList<File> files = new ArrayList<>();//创建一个集合。元素是File类型。for (String s : ss)//遍历名称数组。if ((filter == null) || filter.accept(this, s))//对遍历的名称进行过滤器的判断。将 当前目录this,遍历到名称s传递给accept方法。//一旦条件满足过滤器的过滤条件。files.add(new File(s, this));//将满足过滤条件添加到集合中。添加是 将文件名称和当前目录封装成File对象。new File(dir,name);return files.toArray(new File[files.size()]);//将集合转成数组返回,为啥呢?不需要增删操作。}*/for (File file : files) {System.out.println(file.getName());}}}

import java.io.File;
import java.io.FilenameFilter;

/**
* 用于过滤指定扩展名的文件。
* @author Teaching
*
*/
public class FilenameFilterBySuffix implements FilenameFilter {

private String suffix;

public FilenameFilterBySuffix(String suffix) {
super();
this.suffix = suffix;
}

@Override
public boolean accept(File dir, String name) {

return name.endsWith(suffix);
}

}

转载于:https://www.cnblogs.com/liu-wang/p/8313016.html

java-io流入门相关推荐

  1. Java IO流学习总结四:缓冲流-BufferedReader、BufferedWriter

    Java IO流学习总结四:缓冲流-BufferedReader.BufferedWriter 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/det ...

  2. Java IO流学习总结三:缓冲流-BufferedInputStream、BufferedOutputStream

    Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/ ...

  3. Java IO流思维导图

    Java IO流

  4. Java读取文件流用什么对象_使用Java IO流实现对文本文件的读写过程中,通常需要处理下列( )异常。_学小易找答案...

    [论述题]请根据第一次平时作业的选题,结合第二次课内容,自拟一个论文提纲. [单选题]在 switch ( expression )语句中, expression 的数据类型不能是 ( ) [单选题] ...

  5. java io流大全_Java IO流系统整理

    Java IO流的分类 Java中的流,可以从不同的角度进行分类. 按流向分类: 输入流: 程序可以从中读取数据的流. 输出流: 程序能向其中写入数据的流. 按数据传输单位分类: 字节流:以字节(8位 ...

  6. Java IO流学习总结八:Commons IO 2.5-IOUtils

    Java IO流学习总结八:Commons IO 2.5-IOUtils 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/550519 ...

  7. Java IO流学习总结七:Commons IO 2.5-FileUtils

    Java IO流学习总结七:Commons IO 2.5-FileUtils 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/5497 ...

  8. Java IO流学习总结六:ByteArrayInputStream、ByteArrayOutputStream

    Java IO流学习总结六:ByteArrayInputStream.ByteArrayOutputStream 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/ar ...

  9. Java IO流学习总结二:File

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54581478 本文出自[赵彦军的博客] Java IO流学习总结一:输入输出流 J ...

  10. java io流(字符流) 文件打开、读取文件、关闭文件

    java io流(字符流) 文件打开 读取文件 关闭文件 //打开文件 //读取文件内容 //关闭文件 import java.io.*;public class Index{public stati ...

最新文章

  1. 【飘移】仅需7个动作完成“斯堪的纳维亚钟摆”飘移过弯教程
  2. python绘制直方图根据不同分类_如何在python中绘制具有多个类别的直方图
  3. InitializeComponent()有什么作用?
  4. python统计excel出现次数_Python读取Excel一列并计算所有对象出现次数的方法
  5. single-number-ii
  6. 15.PAE分页(2-9-9-12)
  7. react跳转到网络异常页面_React错误边界处理
  8. R语言作加权最小二乘_超越谷歌BERT!依图预训练语言理解模型入选NeurIPS
  9. Web报表工具FineReport二次开发JS之字符串
  10. lync登录时一直停留在登录界面
  11. 快手短视频广告投放是怎么收费的 快手信息流广告收费标准
  12. LeetCode每日一题(20200820)
  13. linux/debian安装wps以及缺失字体,亲测可用
  14. Java 应用结构规范
  15. 什么是群、什么是阿贝尔群(abel群、阿贝尔群也称为交换群或可交换群)、群论入门
  16. 安装ktorrent amule 下载edk2 迅雷文件
  17. Processing互动编程开发实践之动态文字打乱功能(别嫌长,代码多,图片多)
  18. Linux下的Cannot find a valid baseurl for repo: base/7/x86_64问题记载
  19. 机器学习/深度学习/图机器学习 学习小结
  20. 【OpenCV 例程300篇】209. HSV 颜色空间的彩色图像分割

热门文章

  1. 终于在五一之前打了SP3
  2. 注意:不能将文件名叫做email.py,否则会报 ImportError: No module named mime.text
  3. redis获取存在的键值_Redis 分布式锁、限流
  4. LeetCode 775. Global and Local Inversions
  5. 蓝桥杯 ADV-150算法提高 周期字串
  6. 点击按钮重新加载ajax,Jquery AJAX点击链接,然后重新加载页面
  7. 在 Perl 中利用 DOM 和 XPath 对 XML 进行有效处理
  8. Hive四种数据导入方式介绍
  9. OpenCV3 for python3 学习笔记3-----用OpenCV3处理图像2
  10. 网络采集软件核心技术剖析系列(1)---如何使用C#语言获取博客园某个博主的全部随笔链接及标题...