Javaoop File I/O

一、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();
			}
		}

你可能感兴趣的:(笔记)