Java基础笔记 – Java IO介绍以及File类的介绍和基本使用
本文由发表于6年前 | Java基础 | 评论数 2 |  被围观 8,930 views+
1、Java I/O1.1、Java流的分类
按流向分:
按数据传输单位分:
按功能分:
1.2、java.io常用类2、File类的介绍:2.1、构造方法:2.2、关于文件的路径:2.3、文件管理:
创建文件:
2.4、目录管理:
创建目录:
列出目录中的文件和目录
判断是文件还是目录:
判断文件或目录是否存在:
删除文件或目录:
返回文件或目录的名称:
将路径转换为字符串:
判断路径或文件是否可读和可写:
2.5、创建File并在硬盘上生成文件:2.6、使用FilenameFilter过滤文件:
1、Java I/O

通过数据流、序列化和文件系统提供系统输入和输出。

Java把这些不同来源和目标的数据都统一抽象为数据流。Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。

在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流。

1.1、Java流的分类
按流向分:
输入流: 程序可以从中读取数据的流。
输出流: 程序能向其中写入数据的流。
按数据传输单位分:
字节流: 以字节为单位传输数据的流
字符流: 以字符为单位传输数据的流
按功能分:
节点流: 用于直接操作目标设备的流
过滤流: 是对一个已存在的流的链接和封装,通过对数据进行处理为程序提供功能强大、灵活的读写功能。
1.2、java.io常用类

JDK所提供的所有流类位于java.io包中,都分别继承自以下四种抽象流类:

InputStream:继承自InputStream的流都是用于向程序中输入数据的,且数据单位都是字节(8位)。
OutputSteam:继承自OutputStream的流都是程序用于向外输出数据的,且数据单位都是字节(8位)。
Reader:继承自Reader的流都是用于向程序中输入数据的,且数据单位都是字符(16位)。
Writer:继承自Writer的流都是程序用于向外输出数据的,且数据单位都是字符(16位)。
2、File类的介绍:
public class File
extends Object
implements Serializable, Comparable<File>
文件和目录路径名的抽象表示形式。

File既可以表示文件也可以表示目录。

用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录。此类呈现分层路径名的一个抽象的、与系统无关的视图。抽象路径名 有两个组件:

1. 一个可选的与系统有关的前缀 字符串,比如盘符,"/" 表示 UNIX 中的根目录,"\\\\" 表示 Microsoft Windows UNC 路径名。
2. 零个或更多字符串名称 的序列。

2.1、构造方法:
File(File parent, String child)
根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String pathname)
通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File(String parent, String child)
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
File(URI uri)
通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。
2.2、关于文件的路径:

在处理 UNIX 平台的根目录,以及 Microsoft Windows 平台的盘符、根目录和 UNC 路径名时,将用到前缀这一概念。如下所示:

• 对于 UNIX 平台,绝对路径名的前缀始终是 "/"。相对路径名没有前缀。表示根目录的绝对路径名的前缀为 "/" 且名称序列为空。
• 对于 Microsoft Windows 平台,包含盘符的路径名前缀由驱动器号和一个 ":" 组成。如果路径名是绝对路径名,还可能后跟 "\\"。UNC 路径名的前缀是 "\\\\";主机名和共享名是名称序列中的前两个名称。没有指定驱动器的相对路径名没有前缀。 (D:\\Java)

一般推荐都写成”/”使得在UNIX和Windows下通用。或者使用File类的一个静态变量:

static String separator
与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。
File file = new File(File.separator);

在Windows系统中表示class文件所在的分区的根目录。

2.3、文件管理:
创建文件:

当创建完File对象时,通过调用其createNewFile()方法在相应的目录下创建文件(此方法创建的不是文件夹)

boolean createNewFile()
当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
2.4、目录管理:
创建目录:
boolean mkdir()
创建此抽象路径名指定的目录。
列出目录中的文件和目录
String[] list()
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
File[] listFiles()
返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
判断是文件还是目录:
boolean isDirectory()
测试此抽象路径名表示的文件是否是一个目录。
boolean isFile()
测试此抽象路径名表示的文件是否是一个标准文件。
判断文件或目录是否存在:
boolean exists()
测试此抽象路径名表示的文件或目录是否存在。
删除文件或目录:
boolean delete()
删除此抽象路径名表示的文件或目录。
返回文件或目录的名称:
String getName()
返回由此抽象路径名表示的文件或目录的名称。
将路径转换为字符串:
String getPath()
将此抽象路径名转换为一个路径名字符串。
判断路径或文件是否可读和可写:
boolean canRead()
测试应用程序是否可以读取此抽象路径名表示的文件。
boolean canWrite()
测试应用程序是否可以修改此抽象路径名表示的文件。
2.5、创建File并在硬盘上生成文件:

调用File(String pathname)构造方法:

public static void main(String[] args) {
    File file = new File("D:/filetest");
    try {
        file.createNewFile();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

调用File(File parent, String child)构造方法:

File file = new File("D:/itzhai");
if(!file.exists()){
    file.mkdir();
}
File file2 = new File(file, "arthinking.txt");
file2.createNewFile();
2.6、使用FilenameFilter过滤文件:
java.io
接口 FilenameFilter
________________________________________
public interface FilenameFilter
实现此接口的类实例可用于过滤器文件名。Abstract Window Toolkit 的文件对话框组件使用这些实例过滤 File 类的 list 方法中的目录清单。

FilenameFilter里面只定义了一个方法,该方法被文件列表中的每个文件调用一次:

boolean accept(File dir,
String name)
测试指定文件是否应该包含在某一文件列表中。
参数:
dir - 被找到的文件所在的目录。
name - 文件的名称。
返回:
当且仅当该名称应该包含在文件列表中时返回 true;否则返回 false。

通过调用File的以下方法过滤:

String[] list(FilenameFilter filter)
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File file = new File("D:/itzhai");
String [] filenames = file.list(new FilenameFilter(){
    @Override
    public boolean accept(File dir, String name) {
        if(name.endsWith(".txt")){
            return true;
        }
        return false;
    }
});

for(String filename : filenames){
    System.out.println(filename);
}
除了文章中有特别说明,均为IT宅原创文章,转载请以链接形式注明出处。
本文链接:http://www.itzhai.com/java-based-notebook-java-io-and-file-class-describes-the-basic-introduction-and-use-of.html
关键字: , ,
arthinking Java技术交流群:280755654,入门群:428693174 more
分享到:
 
2011 10/20
文章评论
    2条评论
  1. kk 2012年12月08日16:29:43  #-49楼 回复 回复

    File是字符串和真实文件的中转站.
    字符串–>File–>文件系统中的真实文件
    我可以这样理解么

给我留言

有人回复时邮件通知我
Java基础的相关文章
随机文章 本月热门 热评
1 C++语法笔记 – 流类库与IO 2011/9/3
2 Struts2笔记 – Struts2相关帮助文档和在线学习资料 2011/6/18
3 JavaScript设计模式笔记 – 工厂模式 桥接模式 2012/11/6
4 jQuery中使用$.post提交Ajax请求及传参问题 2011/6/2
5 Python语法笔记1 2014/3/9
6 Linux中sed和awk的使用及其相关实例解析 2011/6/11
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
Mr.5's Life 白天是一名程序员,晚上就是个有抱负的探索者
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
欢迎关注我的公众号 IT宅
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.