File类
概念:代表物理盘符中的一个文件或文件夹
方法:
CreatNewFile()//创建一个新文件
Mkdir()//创建一个新目录
Delete()//删除文件或空目录
Exists()//判断File对象所代表的对象是否存在
getAbsolutePath//获取文件的绝对路径
getName()//取得名字
getParent()//获取文件/目录所在的目录
isDrectory()//是否是目录
isFile()//是否是文件
length()//获得文件的长度
listFiles()//列出目录中的所有内容
reNameTo()//修改文件名为
FileFileter接口
public interface FileFileter
boolean accept(File pathname)
当调用File类中的listFile()方法时,支持传入FileFileter接口接口实现类,对获取文件进行过滤,只有满足条件的文件才可以出现在listFile()的返回值中。
字符编码
ISO-8859-1 收录除ASCLL外,还包括西欧,希腊语,泰语,阿拉伯语,希伯来语对应的文字符号。
UTF-8 针对Unicode的可变长度字符编码 (常用)
GB2312 简体中文
GBK 简体中文 扩充 (常用)
BIG5 台湾 繁体中文
注意:当编码方式和节码方式不一致时,会出现乱码
字符流
字符流的父类:
Reader:字符输入流
public int read(){}
public int read(char[] c){}
public int read(char[] b,int off,int len
Writer:字符输出流
public void write(int n){}
public void write(String str){}
public void write(char[] c){}
字符节点流
FileWriter:
public void write(String str)//一次写多个字符,将b数组中所有字符写入输出流
FileReader:
public int read(char[] c)//从流中读取多个字符,将读到的内容存入c数组,返回实际读到的字符数,如果达到文件的尾部,则返回-1
字符过滤流
缓冲流:BufferredWriter/BufferedReader
支持输入换行符
可以写一行,读一行
PrintWriter:
封装了print()/println()方法,支持写入后换行
字符节点流
桥转换流:InputStreamReader/OutputStreamWriter
可将字节流转换为字符流
可设置字符的编码方式
使用步骤:
创建节点流
[创建过滤流,设置字符编码集]
封装过滤流
读写数据
关闭流
-----------------------------------------------------------------------------作业分割线
- (File 类)以下关于 File 类说法正确的是:
A. 一个 File 对象代表了操作系统中的一个文件或者文件夹
B. 可以使用 File 对象创建和删除一个文件
C. 可以使用 File 对象创建和删除一个文件夹
D. 当一个 File 对象被垃圾回收时,系统上对应的文件或文件夹也被删除
答:BC
A:对象代表了文件或文件夹的引用
-
(File 类)将下列代码补充完整
class TestMyFile{
public static void main(String args[]) throws Exception{
File file;
//创建一个 File 对象表示当前目录下的“hello.txt”文件
//判断该文件是否存在
//如果该文件存在,则输出该文件的完整路径
}
-
(过滤流)利用 Data 流,完成下面操作:
I. 判断当前目录下是否存在一个“test.dat”的文件,如果该文件不存在,则往该文件中写入一个 long
类型的数值:10000L
II. 如果该文件存在,则从该文件中读出数值,并把该数值加 1 之后,再存回文件中。 -
(字符流、桥转换)要想从某个文件中获得一个字符输出流,则至少有以下三种方式:
A. 利用 FileWriter 类
B. 利用 PrintWriter 类
C. 利用 FileOutputStream 类,并通过 OutputStreamWriter 类获得 Writer 请简述这三种方式获得
Writer 的区别。
答:FileWriter类写出的字符串无法换行。PrintWriter类下的print()/println()方法支持写入后换行,
通过OutputStreamWriter类获得的Writer方法可以设置字符的编码格式。
-
(字节流、字符流)以下几种文件格式,应当使用字节流还是字符流?
I. .java 源文件 字符流
II. .class 字节码文件 字符流
III. .html 网页文件 字节流
IV. .jpg 图像文件 字节流
V. .mp3 音乐文件 字节流 -
(过滤流)连线题。把过滤流和相应的功能用线连起来。注意,左右两边不是一一对应的关系。
-
(字符流、桥转换)完成下面功能:
事先在当前目录下准备好一个 test.txt 的文本文件,要求该文本文件是使用 GBK 编码的多行文本文件。
如:test.txt
窗前明月光
疑是地上霜
举头望明月
低头思故乡
利用字节流+桥转换读入这个文本文件,按照行的顺序,以 UTF-8 编码方式,写到 test2.txt 文件中。
例:test2.txt
低头思故乡
举头望明月
疑是地上霜
窗前明月光
17. (字节流,BufferedReader)完成下面操作。
在当前目录下创建一个 worldcup.txt 的文本文件,其格式如下:
2006/意大利
2002/巴西
…该文件采用“年份/世界杯冠军”的方式保存每一年世界杯冠军的信息。
要求:读入该文件的基础上,让用户输入一个年份,输出该年的世界杯冠军。如果该年没有举办世界杯,
则输出“没有举办世界杯”
18. (综合)
从命令行中读入一个文件名,判断该文件是否存在。如果该文件存在,则在原文件相同路径下创建一个文件名为“copy_原文件名”的新文件,该文件内容为原文件的拷贝。 例如:读入 /home/java/photo.jpg则创建一个文件 /home/java/copy_photo.jpg 新文件内容和原文件内容相同。