java-io流入门
一 概述
已学习过的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流入门相关推荐
- Java IO流学习总结四:缓冲流-BufferedReader、BufferedWriter
Java IO流学习总结四:缓冲流-BufferedReader.BufferedWriter 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/det ...
- Java IO流学习总结三:缓冲流-BufferedInputStream、BufferedOutputStream
Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/ ...
- Java IO流思维导图
Java IO流
- Java读取文件流用什么对象_使用Java IO流实现对文本文件的读写过程中,通常需要处理下列( )异常。_学小易找答案...
[论述题]请根据第一次平时作业的选题,结合第二次课内容,自拟一个论文提纲. [单选题]在 switch ( expression )语句中, expression 的数据类型不能是 ( ) [单选题] ...
- java io流大全_Java IO流系统整理
Java IO流的分类 Java中的流,可以从不同的角度进行分类. 按流向分类: 输入流: 程序可以从中读取数据的流. 输出流: 程序能向其中写入数据的流. 按数据传输单位分类: 字节流:以字节(8位 ...
- Java IO流学习总结八:Commons IO 2.5-IOUtils
Java IO流学习总结八:Commons IO 2.5-IOUtils 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/550519 ...
- Java IO流学习总结七:Commons IO 2.5-FileUtils
Java IO流学习总结七:Commons IO 2.5-FileUtils 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/5497 ...
- Java IO流学习总结六:ByteArrayInputStream、ByteArrayOutputStream
Java IO流学习总结六:ByteArrayInputStream.ByteArrayOutputStream 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/ar ...
- Java IO流学习总结二:File
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54581478 本文出自[赵彦军的博客] Java IO流学习总结一:输入输出流 J ...
- java io流(字符流) 文件打开、读取文件、关闭文件
java io流(字符流) 文件打开 读取文件 关闭文件 //打开文件 //读取文件内容 //关闭文件 import java.io.*;public class Index{public stati ...
最新文章
- 【飘移】仅需7个动作完成“斯堪的纳维亚钟摆”飘移过弯教程
- python绘制直方图根据不同分类_如何在python中绘制具有多个类别的直方图
- InitializeComponent()有什么作用?
- python统计excel出现次数_Python读取Excel一列并计算所有对象出现次数的方法
- single-number-ii
- 15.PAE分页(2-9-9-12)
- react跳转到网络异常页面_React错误边界处理
- R语言作加权最小二乘_超越谷歌BERT!依图预训练语言理解模型入选NeurIPS
- Web报表工具FineReport二次开发JS之字符串
- lync登录时一直停留在登录界面
- 快手短视频广告投放是怎么收费的 快手信息流广告收费标准
- LeetCode每日一题(20200820)
- linux/debian安装wps以及缺失字体,亲测可用
- Java 应用结构规范
- 什么是群、什么是阿贝尔群(abel群、阿贝尔群也称为交换群或可交换群)、群论入门
- 安装ktorrent amule 下载edk2 迅雷文件
- Processing互动编程开发实践之动态文字打乱功能(别嫌长,代码多,图片多)
- Linux下的Cannot find a valid baseurl for repo: base/7/x86_64问题记载
- 机器学习/深度学习/图机器学习 学习小结
- 【OpenCV 例程300篇】209. HSV 颜色空间的彩色图像分割
热门文章
- 终于在五一之前打了SP3
- 注意:不能将文件名叫做email.py,否则会报 ImportError: No module named mime.text
- redis获取存在的键值_Redis 分布式锁、限流
- LeetCode 775. Global and Local Inversions
- 蓝桥杯 ADV-150算法提高 周期字串
- 点击按钮重新加载ajax,Jquery AJAX点击链接,然后重新加载页面
- 在 Perl 中利用 DOM 和 XPath 对 XML 进行有效处理
- Hive四种数据导入方式介绍
- OpenCV3 for python3 学习笔记3-----用OpenCV3处理图像2
- 网络采集软件核心技术剖析系列(1)---如何使用C#语言获取博客园某个博主的全部随笔链接及标题...