丁保国的博客

收集整理工作生活,点点滴滴

  :: :: 博问 :: 闪存 :: :: :: :: 管理 ::

第十二讲 文件管理和IO入门

 

主要内容

File类和文件管理

File类的常用方法

数据流初步理解

数据流的封装

 

File类和Java文件管理

Java文件管理概述

Java提供了类似“资源管理器”或者DOS命令所具有的文件和目录管理功能。如:建立目录、删除文件、显示目录中的文件等。

文件:一组相关信息的集合。

目录:一种特殊的文件,用以存放文件和其他目录。

路径:从盘符经过各级目录到文件的目录序列

 

文件管理步骤

²       建立File对象与具体的文件或目录建立联系

²       调用File类的方法进行文件和目录操作。

 

File类的认识

 

File类通过简易的方法封装了复杂的、与平台相关的文件及目录。

 

File类的构造方法

public File(String path)

创建一个File对象,指向path所表示的文件或者目录。

如:File dir=new File(“d:\\java\\javatry”);

File(File dir, String name)

创建一个File对象,指向dir指定的目录下的文件名为name

如:File f1=new File(dir,”Hello.java”);

File(String path, String name)

创建一个File对象,直接指向path路径下的name文件。

 

说明:创建一个 File对象,不会影响到真实的文件系统,只是在对象与真实的文件或目录之间建立了联系。

 

File类的常用方法

方法名

功能说明

public boolean canRead()

 

测试程序是否能从该文件读

public boolean canWrite()

 

测试程序是否能写该文件

public boolean exists()

 

测试该文件(目录)是否存在

public boolean isDirectory()

 

测试该文件是否目录

public boolean isFile()

 

测试该文件是否一个文件

public String getAbsolutePath()

 

获取该文件的绝对路径

public String getName()

 

获取该文件的名字

public String getPath()

 

获取该文件的路径

public long lastModified()

 

返回该文件最后被修改的时间

public boolean setLastModified(long time)

 

设置文件(目录)最后修改时间

public long length()

 

返回文件的长度(bytes)

public String[] list()

如果文件是一个目录的话,返回该目录下所有文件名的列表

public boolean mkdir()

 

建立一个目录

public boolean mkdirs()

建立一个目录。如果该目录的父目录不存在的话,也创建它。

public boolean renameTo(File)

 

将文件名改名为 File 参数所表示的文件名

public boolean delete()

 

删除文件或目录

public boolean createNewFile()throws IOException

自动创建一个新的空文件(如果对象指向的文件不存在的话)

 

练习1、创建文件D:\Ok\try.txt(创建步骤:创建目录、创建文件)

 

练习2D:\Ok\try.txt的创建时间改为后一天。

 

练习3删除文件和目录(删除步骤:先删除文件,后删除目录)

 

数据流初步理解

常见的输入输出问题

²     键盘输入一些数据,放到一个文件中保存

²     读取一个文本文件的内容,在屏幕上显示出来

²     一个文件向另一个文件进行数据传输

²     生成一个文件,保存程序的运行结果

数据流

这样一些数据传输问题中,有不同的源和目的地,流可看作是数据从源向目的地流动的一个途径。

 

 

数据源:获得数据的地方

数据宿:接收数据的地方

 

思考

1.    “键盘输入一些数据”,数据源和数据宿分别是什么?

2.    “程序运行结果保存到文件”,数据源和数据宿分别是什么?

3.    “读取一个文本文件”,数据源和数据宿分别是什么?

 

输入流和输出流

java.io是大多数面向数据流的输入/输出类的主要软件包。该包支持:

²       控制台I/O

²       文件I/O

²       字节I/O

²       字符I/O

Java所有的输入输出问题都基于数据流实现。

 

“I还是O?”,从程序的角度分辨:

输入流:数据源向程序运送数据

输出流:由程序向数据宿运送数据

思考

1.    “键盘输入一些数据”,输入流还是输出流?

2.    “程序运行结果保存到文件”,输入流还是输出流?

3.    “读取一个文本文件”,输入流还是输出流?

4.    “复制一个文件”,需要什么流?

5.    “显示文件内容”,需要什么流?

 

数据流的封装

数据流表示了字符或者字节数据的流动序列。

InputStream

面向字节的输入流的父类,InputStream是一个抽象类。

 

OutputStream

面向字节的输出流的父类,OutputStream

 

 

Reader

面向字符的输入流的父类。

 

Writer

面向字符的输出流的父类。

 

 

posted on 2007-07-21 14:35  丁保国  阅读(374)  评论(0编辑  收藏  举报