SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
北京圣思园科技有限公司
http://www.shengsiyuan.com
• 课程目标
– 理解Java I/O系统
– 熟练使用java.io包中的相关类与接口进行I/O
编程
– 掌握Java I/O的设计原则与使用的设计模式
• 对程序语言设计者来说,设计一个令人满
意的I/O(输入输出)系统,是件极艰巨的
任务
• 摘自《Thinking in Java》
• 一个File类的对象,表示了磁盘上的文件或
目录
• File类提供了与平台无关的方法来对磁盘上
的文件或目录进行操作
• File类直接处理文件和文件系统。
• File类没有指定信息怎样从文件读取或向文
件存储
• File类描述了文件本身的属性
• File对象用来获取或处理与磁盘文件相关的
信息,例如权限,时间,日期和目录路径
• File类还可以浏览子目录层次结构
• java.io包中的File类提供了与具体平台无关的方
式来描述目录和文件对象的属性功能。其中包含
大量的方法可用来获取路径、目录和文件的相关
信息,并对它们进行创建、删除、改名等管理工
作。因为不同的系统平台,对文件路径的描述不
尽相同。为做到平台无关,在Java语言中,使用
抽象路径等概念。Java自动进行不同系统平台的
文件路径描述与抽象文件路径之间的转换。
• File类的直接父类是Object类。
• 下面的构造方法可以用来生成File 对象:
– File(String directoryPath)
File(String directoryPath, String
filename)
File(File dirObj, String filename)
• 这里,directoryPath是文件的路径名,
filename 是文件名,dirObj 是一个指定
目录的File 对象
举例说明:
File myFile = new File(" myfile. txt");
File myDir = new File(" MyDocs");
File myFile = new File( myDir, "myfile.
txt");
这些构造方法取决于访问文件的方式。例如,若
在应用程序里只用一个文件,第一种创建文件的
结构是最容易的。但若在同一目录里打开数个文
件,则后种方法更好一些。
• 目录管理
– 目录操作的主要方法为:
– public boolean mkdir() 根据抽象路径名创建目录。
– public String[] list() 返回抽象路径名表示路径中
的文件名和目录名。
• 文件管理
– 在进行文件操作时,常需要知道一个关于文件的信息。
Jave的File类提供了方法来操纵文件和获得一个文件
的信息。另外,File类还可以对目录和文件进行删除、
属性修改等管理工作
• File 类定义了很多获取File对象标准属性的
方法。例如getName( )返回文件名,
getParent( )返回父目录名,exists( )在
文件存在的情况下返回true,反之返回
false。然而File类是不对称的。说它不对
称,意思是虽然存在允许验证一个简单文
件对象属性的很多方法,但是没有相应的
方法来改变这些属性
• File类中的常用方法
String getName()
String getPath()
String getAbsolutePath()
String getParent()
boolean renameTo( File newName)
long length()
boolean delete()
boolean mkdir()
String[] list()
• File类中的常用方法
– boolean exists()
– boolean canWrite()
– boolean canRead()
– boolean isFile()
– boolean isDirectory()
• 目录是一个包含其他文件和路径列表的File
类。
• 当你创建一个File 对象且它是目录时,
isDirectory( ) 方法返回ture。这种情况
下,可以调用该对象的list( )方法来提取该
目录内部其他文件和目录的列表
• 示例程序
• 使用FilenameFilter
– 希望能够限制由list( )方法返回的文件数目,
使它仅返回那些与一定的文件名方式或者过滤
(filter)相匹配的文件。为达到这样的目的,必
须使用list( )的第二种形式 (方法重载)
– String[ ] list(FilenameFilter FFObj)
– 该形式中,FFObj是一个实现FilenameFilter
接口的类的对象
• FilenameFilter仅定义了一个方法,accept( )。
该方法被列表中的每个文件调用一次。它的通常
形式如下:
• boolean accept(File directory, String
filename)
• 当被directory 指定的目录中的文件(也就是说,
那些与filename 参数匹配的文件)包含在列表中
时,accept( )方法返回true ,当这些文件没有
包括在列表中时,accept( )返回false
• 参见程序 FileTest11.java
• listFiles()方法
File[ ] listFiles( )
File[ ] listFiles(FilenameFilter FFObj)
File[ ] listFiles(FileFilter FObj)
• 上述三种形式以File对象数组的形式返回文
件列表,而不是用字符串形式返回。第一
种形式返回所有的文件,第二种形式返回
满足指定FilenameFilter接口的文件。除
了返回一个File 对象数组,这两个
listFiles( )方法就像list( )方法一样工作
• 第三种listFiles( )形式返回满足指定
FileFilter的路径名的文件。FileFilter只定
义了一个 accept( )方法,该方法被列表中
的每个文件调用一次。它的通常形式如下:
• boolean accept(File path)
• 如果文件被包括在列表中(即与path参数
匹配的文件),accept( )方法返回true,
如果不被包括,则返回false。

Contenu connexe

En vedette (11)

ΝΝeymar
ΝΝeymarΝΝeymar
ΝΝeymar
 
Qualities image pdf
Qualities image pdfQualities image pdf
Qualities image pdf
 
הצפנת שיחות טלפון סלולרי שגם המשטרה לא יכולה לשמוע
הצפנת שיחות טלפון סלולרי שגם המשטרה לא יכולה לשמועהצפנת שיחות טלפון סלולרי שגם המשטרה לא יכולה לשמוע
הצפנת שיחות טלפון סלולרי שגם המשטרה לא יכולה לשמוע
 
Superheroes image pdf
Superheroes image pdfSuperheroes image pdf
Superheroes image pdf
 
Messi
Messi Messi
Messi
 
NMD BETA Jobs show
NMD BETA Jobs showNMD BETA Jobs show
NMD BETA Jobs show
 
Neymar
Neymar Neymar
Neymar
 
Understanding Flyer
Understanding FlyerUnderstanding Flyer
Understanding Flyer
 
Aspek sosial
Aspek sosialAspek sosial
Aspek sosial
 
Max ontdekt de stad.6
Max ontdekt de stad.6Max ontdekt de stad.6
Max ontdekt de stad.6
 
El
ElEl
El
 

Similaire à Io 1

[圣思园][Java SE]Io 1
[圣思园][Java SE]Io 1[圣思园][Java SE]Io 1
[圣思园][Java SE]Io 1
ArBing Xie
 
2. java introduction
2. java introduction2. java introduction
2. java introduction
netdbncku
 
TQC+ Java 認證研習
TQC+ Java 認證研習TQC+ Java 認證研習
TQC+ Java 認證研習
Kyle Lin
 
Java 推荐读物
Java 推荐读物Java 推荐读物
Java 推荐读物
yiditushe
 
Q con shanghai2013-[刘海锋]-[京东文件系统简介]
Q con shanghai2013-[刘海锋]-[京东文件系统简介]Q con shanghai2013-[刘海锋]-[京东文件系统简介]
Q con shanghai2013-[刘海锋]-[京东文件系统简介]
Michael Zhang
 
C语言benchmark覆盖信息收集总结4
C语言benchmark覆盖信息收集总结4C语言benchmark覆盖信息收集总结4
C语言benchmark覆盖信息收集总结4
Tao He
 
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Justin Lin
 

Similaire à Io 1 (20)

[圣思园][Java SE]Io 1
[圣思园][Java SE]Io 1[圣思园][Java SE]Io 1
[圣思园][Java SE]Io 1
 
Java_05:檔案輸出輸入機制
Java_05:檔案輸出輸入機制Java_05:檔案輸出輸入機制
Java_05:檔案輸出輸入機制
 
2. java introduction
2. java introduction2. java introduction
2. java introduction
 
Io 2
Io 2Io 2
Io 2
 
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDEJava SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
 
TQC+ Java 認證研習
TQC+ Java 認證研習TQC+ Java 認證研習
TQC+ Java 認證研習
 
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDEJava SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
 
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
 
OpenEJB - 另一個選擇
OpenEJB - 另一個選擇OpenEJB - 另一個選擇
OpenEJB - 另一個選擇
 
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 ServletServlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
 
質性研究軟體Nvivo10實作-三星統計陳群典顧問-20131123版
質性研究軟體Nvivo10實作-三星統計陳群典顧問-20131123版質性研究軟體Nvivo10實作-三星統計陳群典顧問-20131123版
質性研究軟體Nvivo10實作-三星統計陳群典顧問-20131123版
 
OPM
OPMOPM
OPM
 
文學通的開發心路歷程
文學通的開發心路歷程文學通的開發心路歷程
文學通的開發心路歷程
 
Java 推荐读物
Java 推荐读物Java 推荐读物
Java 推荐读物
 
Lucene实践
Lucene实践Lucene实践
Lucene实践
 
Q con shanghai2013-[刘海锋]-[京东文件系统简介]
Q con shanghai2013-[刘海锋]-[京东文件系统简介]Q con shanghai2013-[刘海锋]-[京东文件系统简介]
Q con shanghai2013-[刘海锋]-[京东文件系统简介]
 
C语言benchmark覆盖信息收集总结4
C语言benchmark覆盖信息收集总结4C语言benchmark覆盖信息收集总结4
C语言benchmark覆盖信息收集总结4
 
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
 
Android开发培训 单元1
Android开发培训 单元1Android开发培训 单元1
Android开发培训 单元1
 
【80ppt.com】怎样拯救我们的“脑“? 教你如何整理电脑文件@ppt精选
【80ppt.com】怎样拯救我们的“脑“?  教你如何整理电脑文件@ppt精选【80ppt.com】怎样拯救我们的“脑“?  教你如何整理电脑文件@ppt精选
【80ppt.com】怎样拯救我们的“脑“? 教你如何整理电脑文件@ppt精选
 

Plus de Medivh2011 (16)

北京圣思园深入Java虚拟机 class loader
北京圣思园深入Java虚拟机 class loader北京圣思园深入Java虚拟机 class loader
北京圣思园深入Java虚拟机 class loader
 
Unit test lesson 3
Unit test lesson 3Unit test lesson 3
Unit test lesson 3
 
Unit test lesson 1
Unit test lesson 1Unit test lesson 1
Unit test lesson 1
 
Unit test lesson 2
Unit test lesson 2Unit test lesson 2
Unit test lesson 2
 
Swing
SwingSwing
Swing
 
Reflection
ReflectionReflection
Reflection
 
Network
NetworkNetwork
Network
 
Multithread
MultithreadMultithread
Multithread
 
Jdk5
Jdk5Jdk5
Jdk5
 
Io 3
Io 3Io 3
Io 3
 
Inner class
Inner classInner class
Inner class
 
Event
EventEvent
Event
 
Clone
CloneClone
Clone
 
Class loader
Class loaderClass loader
Class loader
 
Awt
AwtAwt
Awt
 
Ant
AntAnt
Ant
 

Io 1