在Java语言的java.io包中,由File类提供了描述文件和目录的操作与管理方法。但File类不是InputStream、OutputStream或Reader、Writer的子类,因为它不负责数据的输入输出,而专门用来管理磁盘文件与目录。
作用:File类主要用于命名文件、查询文件属性和处理文件目录。
-
public class File extends Object
-
implements Serializable,Comparable
-
{}
File类共提供了三个不同的构造函数,以不同的参数形式灵活地接收文件和目录名信息。构造函数:
1)File (String pathname)
例:File
f1=new
File("FileTest1.txt"); //创建文件对象f1,f1所指的文件是在当前目录下创建的FileTest1.txt
2)File (String parent ,
String child)
例:File
f2=new File(“D:\\dir1","FileTest2.txt") ;//
注意:D:\\dir1目录事先必须存在,否则异常
3)File (File parent
, String child)
例:File
f4=new File("\\dir3");
File f5=new
File(f4,"FileTest5.txt"); //在如果
\\dir3目录不存在使用f4.mkdir()先创建
一个对应于某磁盘文件或目录的File对象一经创建, 就可以通过调用它的方法来获得文件或目录的属性。
1)public boolean exists( ) 判断文件或目录是否存在
2)public boolean isFile( ) 判断是文件还是目录
3)public boolean isDirectory( ) 判断是文件还是目录
4)public String getName( ) 返回文件名或目录名
5)public String getPath( ) 返回文件或目录的路径。
6)public long length( )
获取文件的长度
7)public String[ ] list (
)将目录中所有文件名保存在字符串数组中返回。
File类中还定义了一些对文件或目录进行管理、操作的方法,常用的方法有:
1) public boolean renameTo( File
newFile ); 重命名文件
2) public void delete( );
删除文件
3) public
boolean mkdir( ); 创建目录
例子:
-
import java.io.File;
-
import java.io.IOException;
-
public class TestFile {
-
public static void main(String args[]) throws IOException {
-
File dir = new File("\\root");
-
File f1 = new File(dir, "fileOne.txt");
-
File f2 = new File(dir, "fileTwo.java");
-
// 文件对象创建后,指定的文件或目录不一定物理上存在
-
if (!dir.exists())
-
dir.mkdir();
-
if (!f1.exists())
-
f1.createNewFile();
-
if (!f2.exists())
-
f2.createNewFile();
-
System.out.println("f1's AbsolutePath= " + f1.getAbsolutePath());
-
System.out.println("f1 Canread=" + f1.canRead());
-
System.out.println("f1's len= " + f1.length());
-
String[] FL;
-
int count = 0;
-
FL = dir.list();
-
for (int i = 0; i < FL.length; i++) {
-
count++;
-
System.out.println(FL[i] + "is in \\root");
-
}
-
System.out.println("there are" + count + "file in //root");
-
}
-
-
}
说明:File类的方法:
(1) exists()测试磁盘中指定的文件或目录是否存在
(2) mkdir()创建文件对象指定的目录(单层目录)
(3) createNewFile()创建文件对象指定的文件
(4) list()返回目录中所有文件名字符串
1.
io流的四个基本类
java.io包中包含了流式I/O所需要的所有类。在java.io包中有四个基本类:InputStream、OutputStream及Reader、Writer类,它们分别处理字节流和字符流:
基本数据流的I/O
输入/输出
|
字节流
|
字符流
|
输入流
|
Inputstream
|
Reader
|
输出流
|
OutputStream
|
Writer
|
Java中其他多种多样变化的流均是由它们派生出来的:
http://my.csdn.net/uploads/201204/01/1333250374_3564.gifI/O数据流(2)" />
http://my.csdn.net/uploads/201204/01/1333250382_9126.gifI/O数据流(2)" />
http://my.csdn.net/uploads/201204/01/1333250341_6152.gifI/O数据流(2)" />
http://my.csdn.net/uploads/201204/01/1333250133_8675.gifI/O数据流(2)" />
JDK1.4版本开始引入了新I/O类库,它位于java.nio包中,新I/O类库利用通道和缓冲区等来提高I/O操作的效率。
在java.io包中,
java.io.InputStream 表示字节输入流,
java.io.OutputStream表示字节输出流,处于java.io包最顶层。这两个类均为抽象类,也就是说它们不能被实例化,必须生成子类之后才能实现一定的功能。
1. io流的具体分类
一、按I/O类型来总体分类:
1.
Memory 1)从/向内存数组读写数据: CharArrayReader、
CharArrayWriter、ByteArrayInputStream、ByteArrayOutputStream
2)从/向内存字符串读写数据
StringReader、StringWriter、StringBufferInputStream
2.Pipe管道
实现管道的输入和输出(进程间通信):
PipedReader、PipedWriter、PipedInputStream、PipedOutputStream
3.File 文件流。对文件进行读、写操作
:FileReader、FileWriter、FileInputStream、FileOutputStream
4.
ObjectSerialization 对象输入、输出 :ObjectInputStream、ObjectOutputStream
5.DataConversion数据流 按基本数据类型读、写(处理的数据是Java的基本类型(如布尔型,字节,整数和浮点数)):DataInputStream、DataOutputStream
6.Printing 包含方便的打印方法
:PrintWriter、PrintStream
7.Buffering缓冲 在读入或写出时,对数据进行缓存,以减少I/O的次数:BufferedReader、BufferedWriter、BufferedInputStream、BufferedOutputStream
8.Filtering 滤流,在数据进行读或写时进行过滤:FilterReader、FilterWriter、FilterInputStream、FilterOutputStream过
9.Concatenation合并输入 把多个输入流连接成一个输入流
:SequenceInputStream
10.Counting计数
在读入数据时对行记数 :LineNumberReader、LineNumberInputStream
11.Peeking
Ahead 通过缓存机制,进行预读
:PushbackReader、PushbackInputStream
12.Converting
between Bytes and Characters 按照一定的编码/解码标准将字节流转换为字符流,或进行反向转换(Stream到Reader,Writer的转换类):InputStreamReader、OutputStreamWriter
二、按数据来源(去向)分类:
1、File(文件):
FileInputStream, FileOutputStream, FileReader,
FileWriter
2、byte[]:ByteArrayInputStream,
ByteArrayOutputStream
3、Char[]:
CharArrayReader, CharArrayWriter
4、String:
StringBufferInputStream, StringReader,
StringWriter
5、网络数据流:InputStream,
OutputStream, Reader,
Writer
加载中,请稍候......