文章插图
所谓的 IO 即 Input(输入)/Output(输出) , 当软件与外部资源(例如:网络 , 数据库 , 磁盘文件)交互的时候 , 就会用到 IO 操作 。而在IO操作中 , 最常用的一种方式就是流 , 也被称为IO流 。IO操作比较复杂 , 涉及到的系统调用比较多 , 相对操作内存而言性能很低 。然而值得兴奋的是 , Java提供了很多实现类以满足不同的使用场景 , 这样的实现类有很多 , 我只挑选些在日常编码中经常用到的类进行说明 , 本节主要介绍和文件操作相关的流 , 下面一起来瞧瞧吧 。
File
File是Java在整个文件IO体系中比较基础的类 , 它可以实现对文件 , 文件夹以及路径的操作 , 譬如:创建文件或文件夹 , 获取绝对路径 , 判断是否存在 , 重命名 , 删除 , 获取当前目录下的文件或文件夹等操作 。
File file = new File("example"); //相对路径 System.out.println(file.getAbsolutePath()); //获取绝对路径 System.out.println(file.getName()); //获取名称 System.out.println(file.exists()); //判断文件或文件夹是否存在 boolean result = file.mkdirs();// 把 example 当成文件夹来创建,mkdirs()为级联创建System.out.println(result); result = file.createNewFile();// 把 example 当成文件夹来创建System.out.println(result);在使用File的时候有几点需要注意:
传入File中的参数路径可以存在也可以不存在 。传入File中的参数路径如果是相对路径 , 那么这个路径是相对于当前Java Project根目录的 。当传入的路径不存在的时候 , 是无法根据 isDirectory() 或 isFile() 来判断是文件夹还是文件当有需求进行遍历指定目录下所有指定后缀名或是指定名称文件或文件夹时 , 需要在ListFile的参数中提供一个名为filter的过滤器来帮助实现过滤功能 , 这个过滤器Java是不进行提供的 , 要根据自己的需求来实现 。如果要使用这个方法需要实现FileFilter 类 。如下实现了一个过滤指定文件的后缀名的过滤器 。
class ExtendNameFilter implements FileFilter {private String extendName;public ExtendNameFilter(String extendName) { this.extendName = extendName; }public boolean accept(File dir){ if(dir.isDirectory()) return true; return dir.getName().endsWith(this.extendName); }}// 筛选指定文件夹下文件以.java结尾的文件File[] files = file.listFiles(new ExtendNameFilter(".java")); for(File f : files) { System.out.println(f.getName()); }File还有很多常用的操作 , 由于篇幅有限这里就不逐个演示 , 更多操作的使用方式和如上示例在调用方法上没有任何区别 , 主要注意参数和返回值即可 。
字节 , 字符和编码格式
对于字节 , 字符和编码格式这里不做概念性的描述 , 详细的释义网上有很多 , 请自行查阅 。但从表现形式上对于它们可以大致这样理解:字节和字符对于系统数据而言表现形式是不同的 , 可以通过打开一些文件来观察 , 如果打开的是图片或者是可执行程序文件 , 那么就会看到一些类似于乱码的东西;而如果是文本文件 , 基本上会看到明文数据 , 例如“你好” , “Hello World”等 。对于前一种看不懂的就是使用字节来表示的 , 能看的懂得就是使用字符来表示的 。而字符也是通过字节来存储的 , 只不过 , 在不同的编码格式中所使用的字节数是不一样的 , 具体哪些字符需要多少个字节表示需要对应的编码表 。例如:使用GBK编码存储汉字字符 , 则用2个字节来表示 , 但在UTF8中则使用3个字节来表示
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- java入门基础知识 java算法题面试
- java解压各种类型的文件 java解压zip文件为空
- 讲解java部署jar还是war优劣 jar运行命令
- java程序员必备的基础知识 java截取字符串后几位
- 哪个培训班靠谱?想要培训Java的应该如何选择? 程序员编程培训
- 自学java坚持不下去了,要找Java培训机构吗 程序员编程培训
- 简单好玩的编程代码 javascriptvoid怎么解决
- 教你javascript实时获取鼠标位置 js获取鼠标点击的位置
- 你做 Java 程序员真的是因为热爱吗? 程序员编程培训
- Java基本数据类型 java字符串拆分为数组