1、创建File对象File(String pathname):pathname录入时录入的路径字符串需要注意/和\的运用,但是由于java开发出的程序需要运用到不同的系统上,因此,一般以File.separator来代替。
2、创建File对象File(File parent,String child):此为创建文件对象的另外一种方式,parent为已创建的对象,这种情况,parent一般为文件夹的路径,child为文件的名称。
3、判断File对象是否是一个文件:isFile()返回值true为文件,false为非文件。如下程序中,由于file1对象为文件夹,非文件,返回为false;file2对象为文件,返回true。
4、文件的内容长度(占用字节):length()当前File对象所表示的文件所占用的字节量。在testFile1.txt中事先录入部分数据,file2指向的File对象,内容长度为8。
5、判断文件是否存在,在硬盘创建文件前,一般需要判断硬盘中文件是否存在,如果不存在才创建文件,这样可以避免文件重复创建。
6、文件创建:createNewFile()当File对象调用文件创建方法后,硬盘中文件才会被创建。
在java中File类是可以直接操作文件的类,它有四个构造函数:
File(String parent,String child)
File(File parent,String child)
File(URI uri)
File(String pathname)
封装了以下主要方法:
canWrite() 返回文件是否可以读写
canRead() 返回文件是否可读
compareTo(File pathname)检查文件路径间的顺序
createNewFile() 当文件不存在时生成文件
delete() 从文件系统内删除该文件
deleteOnExit() 程序顺利结束时删除文件
equals(Object obj) 检查特定对象的路径名是否相等
exists() 判断文件是否存在
getAbsoluteFile() 返回文件完整路径的File实例
getAbsolutePath() 返回文件完整路径
getName() 返回文件名称
getParent() 返回文件父目录路径
getPath() 返回文件路径字符串
getParentFile() 返回文件所在文件夹的路径
hashCode() 返回文件哈希码
isDirectory() 判断该路径指示的是否是目录
isFile() 判断该路径指示的是否是文件
lastModified() 返回该文件最后更改时间标志
length() 返回文件长度
list() 返回文件和目录清单
mkdir() 生成指定的目录
renameTo(File dest) 更改文件名字
setReadOnly() 将文件设置为可读
toString() 返回文件状态的字符串
toURL() 将文件的路径字符串转换成URL
一、File类关注的是文件在磁盘上的存储,而
FileInputStream
流类关注的是文件的内容。
二、关于InputStream和Reader;
InputStream提供的是
字节流
的读取,使用InputStream读取出来的是byte数组,而非文本读取,用Reader读取出来的是char数组或者String,这是InputStream和Reader类的根本区别。
InputStreamReader可以将读如stream转换成字符流方式,是reader和stream之间的桥梁.
Reader类及其子类提供的字符流的读取char(16位,unicode编码),inputStream及其子类提供字节流的读取byte(8位),所以FileReader类是将文件按字符流的方式读取,FileInputStream则按字节流的方式读取文件;
FileInputStream以字节为单位(非
unicode
)的流处理。字节序列即:
二进制数据
。与编码无关,不存在
乱码
问题。
FileInputStream
:以字节流方式读取;
FileReader
:把
文件转换
为字符流读入;
三、常用的Reader类
FileReader
,InputStreamReader
,BufferedReader
FileReader
与
InputStreamReader
涉及编码转换,可能在不同的平台上出现乱码现象。
(FileInputStream
以二进制方式处理,不会出现乱码现象。)
FileReader是InputStreamReader
类的子类。
InputStreamReader
的
构造函数
参数为InputStream
和
编码方式
,当要指定编码方式时,必须使用
InputStreamReader
类。
FileReader
构造函数的参数与
FileInputStream
同,为
File
对象或表示
path
的
String。
1、FileReader的用法
FileReader
fr
=
new
FileReader("file.txt")
char[]
buffer
=
new
char[1024]
int
ch
=
0
while((ch
=
fr.read())!=-1
)
{
System.out.print((char)ch)
}
2、InputStreamReader的用法
InputStreamReader
isr
=
new
InputStreamReader(new
FileInputStream("file.txt"))
while((ch
=
isr.read())!=-1)
{
System.out.print((char)ch)
}
3、BufferedReader的用法。
BufferedReader
由Reader类扩展而来,提供通用的缓冲方式文本读取,而且提供了很实用的readLine,读取分行文本很适合,BufferedReader是针对Reader的,不直接针对文件,也不是只针对文件读取。
BufferedReader
br
=
new
BufferedReader(new
InputStreamReader(new
FileInputStream("file.txt")))
String
data
=
null
while((data
=
br.readLine())!=null)
{
System.out.println(data)
}