IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【javase高级-IO流复习】 -> 正文阅读

[Java知识库]【javase高级-IO流复习】

1.File

File 是文件或者文件夹

1.1常用方法

//创建文件类
		File  file = new File("C:\\Users\\Administrator\\Desktop\\aa");
		//判断文件是否可执行,可读,可写;返回值为Boolean值;
		System.out.println(file.canExecute()+"\t"+
		file.canRead()+"\t"+file.canWrite());
		//返回此路径名的绝对路径名形式。
		System.out.println(file.getAbsoluteFile());
		//返回此路径名的绝对路径名字符串。
		System.out.println(file.getAbsolutePath());
		//返回此路径名的路径名字符串;
		System.out.println(file.getPath());
		//返回此路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
		System.out.println(file.getParent());
		//返回此路径名父目录的路径名,如果不存在父目录,则返回null;
		System.out.println(file.getParentFile());

在这里插入图片描述
mkdir()创建指定目录
mkdirs() 创建指定目录,包含必须但不存在的父目录;
isDirectory() 判断是否是一个文件夹
exists()判断文件是否存在;
isFile()判断是否是一个文件;
length()返回该路径名所代表的文件的长度;
list() 返回一个字符串数组,这些字符串是此路径名表示的目录中的文件和目录的名字。
返回的是String的数组;
listFiles();返回的是File数组;是此路径名表示的目录中的文件和文件夹;

public static void main(String[] args) {
		File file = new File("C:\\Users\\Administrator\\Desktop");
		String[] list1 = file.list();
		for(String list:list1) {
			System.out.println(list);
		}
	}

在这里插入图片描述

File file = new File("C:\\Users\\Administrator\\Desktop");
		File[] list2 = file.listFiles();
		for(File list:list2) {
			System.out.println(list);
		}

在这里插入图片描述

当所给路径不是文件夹,创建文件夹,若存在删除文件夹,

package com.openlab.pp;

import java.io.File;
import java.io.IOException;

public class TestFile {
	public static void main(String[] args) {
		File  file = new File("C:\\Users\\Administrator\\Desktop\\aa");
		if(!file.exists()) {
			//创建多级目录;
			file.mkdirs();
			
		}else{
			file.delete();//注意删除是不放回回收站的,所以要谨慎使用;
			System.out.println("删除成功");
		}
	}
}

在这里插入图片描述在这里插入图片描述
判断所给是否为文件,若不是,判断父目录是否存在,不存在则创建,再创建文件,若是文件 则删除文件;

File  file = new File("C:\\Users\\Administrator\\Desktop\\aa\\1.txt");
		
		if(!file.isFile()) {
			File parents = new File(file.getParent());
			if(!parents.exists()) {
				//如果父目录不存在,则创建目录;
				file.mkdirs();
				System.out.println("目录创建成功");
			}
			//接着创建文件
			
			if(!file.exists()) {
				try {
					file.createNewFile();
					System.out.println(file.getName()+"创建成功");
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}else {
			file.delete();
			System.out.println("删除成功");
			//注意删除是不放回回收站的,所以要谨慎使用;
		}

注意:要想删除父目录,如果目录下还有子目录或是子文件,时不能删除的,只有它是空的才能被删除掉;

1.2将文件夹下的所有文件打印输出

public class TestFile {
	public static void main(String[] args) {
		String file = "C:\\Users\\Administrator\\Desktop";
		copyFile(file);
	}
	public static void copyFile(String path) {
		File file = new File(path);
		File[] files = file.listFiles();//获取到所给路径下的文件和文件夹;
		for(File list : files) {
			if(list.isDirectory()) {//利用递归将文件夹下的子孙文件输出;
				copyFile(list.getAbsolutePath());
			}else{
				System.out.println(list.getName());
			}
		}
	}
}

在这里插入图片描述

2.I/O流

2.1原理

I/O是input/output的缩写,I /O技术是用于处理设备之间的数据传输。例如读写文件,网络通讯等等。在Java程序中,对于数据的输入输出都是以流的方式进行操作的。Java.io包下提供了各种流的类与接口,可以获取不同种类的数据,通过标准的方法输入输出数据。
输入input:读取外部数据到内存中;
输出output:将程序(内存)中的数据输出到磁盘或光盘中。
根据不同的站位,流的方向有所不同,我们是站在程序的方向进行判断。
在这里插入图片描述

2.2流的分类

按流的操作单位分按照流的流向分按照流的角色分
字节流输入流节点流
字符流输出流处理流

2.3流的体系结构划分

2.3.1节点流 / 缓冲流

基类节点流缓冲流
InputStreamFileInputStreamBufferedInputStream
OutputStreamFileOutputStreamBufferedInputStream
ReaderFileReaderBufferedReader
WriterFileWriterBufferedWriter
对文件进行读取
package com.openlab.pp;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

import org.junit.jupiter.api.Test;

public class TestRead {
	
	//@Test
	public  void read01() {
		File file = new File("E:\\EclipseWorkSpace\\zong\\src\\1.txt");//创建文件
		FileReader reader = null;
		try {//创建流
			reader = new FileReader(file);
			int data;//读取数据
			while((data = reader.read()) != -1) {
				System.out.print((char) data);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			if(reader != null) {
				try {
					reader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
	
	@Test
	public  void read02() {
		File file = new File("E:\\EclipseWorkSpace\\zong\\src\\1.txt");//创建文件
		FileReader reader = null;
		try {//创建流
			reader = new FileReader(file);
			char[] buf = new char[5];//读取数据
			int len;
			while((len = reader.read(buf)) != -1) {
//				//方式一:
//				//错误写法
//				for(int i = 0;i<buf.length;i++) {
//					System.out.print(buf[i]);
//				}
				//正确写法
//				for(int i = 0;i<len;i++) {
//					System.out.print(buf[i]);
//				}
				//方式二:通过String
				//它同方式一的错误一致,都是左后获取的字符不能完全覆盖buf,所以只修改了一部分,后面的按上一步的字符填充
				System.out.print(new String(buf));
				System.out.print(new String(buf,0,len));
			}
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			if(reader != null) {
				try {
					reader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:20:30  更:2021-12-24 18:21:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:47:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码