File类(重点)
-常用的方法
File(String pathname) - 根据参数指定的路径名来构造对象.
boolean exists() - 测试此抽象路径名表示的文件或目录是否存在.
boolean delete() - 用于删除文件,当删除目录时要求是空目录.
boolean createNewFile() - 用于创建新的空文件.
boolean mkdir() - 用于创建目录.
boolean mkdirs() - 用于创建多级目录.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| import java.io.File; import java.io.IOException; public class FileTest { public static void main(String[] args) throws IOException { File f1 = new File("c:/a.txt"); if(f1.exists()) { System.out.println("文件的大小是:" + f1.length()); System.out.println(f1.delete()? "删除文件成功": "删除文件失败"); } else { System.out.println(f1.createNewFile()? "创建文件成功!": "创建文件失败!"); } System.out.println("--------------------------------------");
File f2 = new File("c:/捣乱/猜猜我是谁/就不告诉你/死鬼"); if(f2.exists()) { System.out.println(f2.delete()? "删除目录成功": "删除目录失败"); } else { System.out.println(f2.mkdirs()? "创建目录成功": "创建目录失败"); } } }
|
I/O流
-
I/O流的结构
-
基本概念
I/O就是Input/Output的简写,也就是输入/输出的含义。
I/O流主要指像流水一样不间断地读写的过程。
-
基本分类
根据数据流动的单位不同分为:字节流 和 字符流。
其中字节流主要指以单个字节为单位进行读写的流,可以读写任意类型的文件。
其中字符流主要指以单个字符(2个字节)为单位进行读写的流,只能读写文本文件。
根据数据流动的方向不同分为:输入流 和 输出流(站在程序的角度)。
其中输入流主要指将文件中的数据内容输入到程序中,也就是读文件。
其中输出流主要指将程序中的数据内容输出到文件中,也就是写文件。
FileOutputStream类
-
基本概念
java.io.FileOutputStream类主要用于将图像数据之类的原始字节流写入输出流中。
-
常用的方法
void write(int b) - 将指定字节写入此文件输出流.
void write(byte[] b,int off,int len) - 将指定字节数组中从偏移量off开始的len个字节写入此文件输出流.
void write(byte[] b) - 将b.length个字节从指定字节数组写入此文件输出流中.
void close() - 用于关闭文件输出流并释放有关的资源.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| import java.io.FileOutputStream; public class FileOutputStreamTest { public static void main(String[] args) { try { FileOutputStream fos = new FileOutputStream("c:/a.txt");
fos.write(65); fos.write('6'); fos.write('5'); fos.write("hello".getBytes()); System.out.println("写入数据成功!");
fos.close(); } catch(Exception e) { e.printStackTrace(); } } }
|
-
基本概念
java.io.FileInputStream类主要用于从输入流中读取图像数据之类的原始字节流。
-
常用方法
int read() - 读取一个byte无符号填充到int低八位,-1是EOF.
int read(byte[] b) - 从此输入流中将最多b.length个字节的数据读入一个字节数组中,返回读取的字节的个数.
int read(byte[] b,int off,int len) - 从此输入流中将最多len个字节的数据读入一个字节数组中.
void close() - 用于关闭文件输出流并释放有关的资源.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| import java.io.FileInputStream; public class FileInputStreamTest { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("c:/a.txt");
byte[] bArr = new byte[20]; int res = fis.read(bArr, 2, 5); System.out.println("读取到的数据内容是:" + new String(bArr, 2, res) + ",数据大小是:" + res);
fis.close(); } catch(Exception e) { e.printStackTrace(); } } }
|
##字节流拷贝文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| import java.io.FileInputStream; import java.io.FileOutputStream; public class FileCopyTest { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("D:\\java30\\day17\\must\\video\\Java基础与设计_Java核心类库和设计_1_作业讲解之Set集合中放入随机数.wmv"); FileOutputStream fos = new FileOutputStream("c:/b.wmv");
System.out.println("正在玩命地拷贝...");
byte[] bArr = new byte[1024*8]; int res = 0; while((res = fis.read(bArr)) != -1) { fos.write(bArr, 0, res); } System.out.println("文件拷贝成功!");
fos.close(); fis.close(); } catch(Exception e) { e.printStackTrace(); } } }
|