一、File类访问文件属性
1.File类可以创建对象也可以表示物理文件或目录,通过文件对象的方法可以操作文件或目录的属性
//创建file对象:没有无参构造
File file=new File("yq.txt");
2.File类常用方法
方法名称 | 说明 |
---|---|
boolean exists() | 判断文件或目录是否存在 |
boolean isFile() | 判断是否是文件 |
boolean isDirectory() | 判断是否是目录 |
String getPath() | 返回此对象表示的文件的相对路径名 |
String getAbsolutePath() | 返回此对象表示的文件的绝对路径名 |
String getName() | 返回此对象表示的文件或目录的名称 |
boolean delete() | 删除此对象指定的文件或目录 |
boolean exists() | 创建名称的空文件,不创建文件夹 |
boolean createNewFile() | 返回文件的长度,单位为字节,若文件不存在,则返回OL |
3.代码块举例
(1).创建文件
if (file.exists()==false) {
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("文件创建成功!");
} else {
System.out.println("文件已存在!");
}
(2).显示文件的相关信息
System.out.println("文件名:"+file.getName());
System.out.println("相对路径:"+file.getPath());
System.out.println("绝对路径:"+file.getAbsolutePath());
System.out.println("文件大小:"+file.length()+"字节");
(3).判断是否是文件
if (file.isFile()) {
System.out.println("是文件");
} else {
System.out.println("不是文件");
}
(4).判断文件是否隐藏
if (file.isHidden()) {
System.out.println("隐藏文件");
} else {
System.out.println("未隐藏");
}
(5).删除文件
if (file.exists()==true) {
file.delete();
System.out.println("删除成功!");
} else {
System.out.println("文件不存在,删除失败!");
}
(6).创建文件夹和新建文件夹
//创建文件夹
File f=new File("D:\\789\\456");
//新建文件夹
if (f.exists()==false) {
f.mkdirs();
System.out.println("文件夹创建成功!");
} else {
System.out.println("文件夹已存在!");
}
二、流
1.流的定义:流是指一连串流动的字符,是以先进先出的方式发送和接收数据的通道。一个流是一个输入设备或输出设备的抽象表示。
2.流的分类:
(1).按照流的流向进行划分,可以分为输入流和输出流。
输入流:读,将文档的数据读取到程序中的过程。(OutputStream和Writer作为基类)
输出流写,程序中的数据保存到文档中的过程。(InputStream和Reader作为基类)
(2).按照所操作的数据单元的不同,流又可划分字节流和字符流。
字节流操作的最小数据单元为8位的字节。(OutputStream和InputStream作为基类)
字符流操作的最小数据单元为16为的字符。(Writer和Reader作为基类)
3.创建文件输出流对象
(1). 字节输出流OutputStream类的作用是把内存的数据输出到文件中,常用方法如下:
方法名 | 说明 |
---|---|
fos write() | 写入一个字节数据 |
fos close() | 关闭输出流 |
代码块举例:
FileOutputStream fos=null;
try {
fos=new FileOutputStream("D:\\ceshi.txt",true);
//创建数据
String str="45648184";
//将字符串转换字节数组
byte[]b=str.getBytes();
//调用方法
fos.write(b);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
4.创建文件输入流对象
(1).字节输入流InputStream的作用就是将文件中的数据输入到内部存储器中。常用的方法如下:
方法名 | 说明 |
---|---|
fis available() | 可以返回文件大小 |
fis read() | 读入一个字节数据 |
fis close() | 关闭输入流 |
代码块举例:
FileInputStream fis=null;
try {
fis=new FileInputStream("D:\\A.txt");
//输出文件的大小
System.out.println("文件字节数为:"+fis.available());
//创建字节数组
byte [] b=new byte[fis.available()];
//将数组读入到字节数组中
fis.read(b);
//将字节数组重新转成字符串
String str=new String(b);
System.out.println(str);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}