File类中的常用方法&IO流中的字节流

ByteArrayInputStream和ByteOutputStream简单谈谈 ByteArrayInputStream从构造方法上来看:其实数据来源就是内存中的一个字节数组对象。 怎么理解呢? FileInputStream流是从文件中获取数据,ByteArrayInputStream从内存中获取,就这么理解即可! 最终,都会产生一个InputStream类型的对象。 ByteOutputStream呢? public ByteOutputStream() { this(1024); } public ByteOutputStream(i 阅读详情

1.File类:文件和目录路径名的抽象表示

2.绝对路径:带盘符的路径.

相对路径:相对其他文件或目录的一个路径叫相对路径.

如果当前文件或目录相对其他盘符的的文件或目录来说,此时相对路径==绝对路径.

如果当前文件或目录相对当前所有在的盘符的文件或目录来说,此时相对路径!=绝对路径.

根路径:相当当前项目的路径.

3.file类常用方法:

   public static void main(String[] args) {
		//获得文件对象
		File f1=new File("aa\\a.txt");
		System.out.println("文件名:"+f1.getName());
		System.out.println("绝对路径:"+f1.getAbsolutePath());
		System.out.println("相对路径:"+f1.getPath());
		System.out.println("是否可读:"+f1.canRead());
		System.out.println("是否可写:"+f1.canWrite());
		System.out.println("是否隐藏:"+f1.isHidden());
		System.out.println("文件的长度:"+f1.length());
		//得到文件最后一次修改时间
		Long time1=f1.lastModified();
		//创建格式化对象
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		//用格式化对象将时间进行格式化成指定格式的字符串
		String time2=sdf.format(new Date(time1));
		
		System.out.println("最后一次修改时间:"+time2);
    }
	public static void main(String[] args) throws IOException {
		//获得文件对象
		File f1=new File("cc\\bb\\b.txt");
		
		//获得当前文件对象父目录
		File parentFile=f1.getParentFile();
		//判断父目录是否存在
		if (parentFile.exists()) {//父目录存在
			System.out.println("父目录存在");
		} else {//父目录不存在
			//创建一级目录
			//parentFile.mkdir();
			//创建多级目录
			parentFile.mkdirs();
			System.out.println("父目录创建成功");
			
		}
		
		//判断当前文件是否存在
		if (f1.exists()) {//文件存在
			System.out.println("文件存在");
		} else {//文件不存在
			//创建文件
			f1.createNewFile();
			System.out.println("文件创建成功");
		}
	}
	public static void main(String[] args) throws IOException {
		//获得目录对象
		File f1=new File("cc");
		
		//判断当前目录是否存在
		if (f1.exists()) {//当前目录存在
			//获得当前目录所有子文件或子目录的字符串形式
			String[] childFiles=f1.list();
			//遍历子文件或子目录
			for (String child : childFiles) {
				//判断子文件或子目录是否以.txt结尾
				if (child.endsWith(".txt")) {
					System.out.println(child);
				}
			}
			
		} else {
			System.out.println("当前目录不存在");
		}
	}

4.递归:方法自身调用自身.

4.1:可以将原问题拆分成若干子问题,子问题的解决方法与原问题的解决方法一样.

4.2:原问题的解决依赖于所有子问题的解决.

4.3:递归一定要有出口.

eg:/**
 * 2.获得指定目录下所有以.txt结尾的文件(子文件,孙子文件,子子孙孙)
 */
public class FileTest4 {

	public static void main(String[] args) throws IOException {
		//获得目录对象
		File f1=new File("cc");
		if (f1.exists()) {
			//调用递归方法
			digun(f1);
		} else {
			System.out.println("目录不存在");
		}
	}
	
	/**
	 * 判断当前目录的子文件是否以.txt结尾
	 * @param f
	 */
	public static void digun(File f) {
		//获得当前目录的子文件或子目录
		File[] files=f.listFiles();
		//遍历所有子文件和子目录
		for (File f2 : files) {
			if (f2.isDirectory()) {//当前遍历的是子目录
				digun(f2);//调用自身
			}else{//当前遍历的是子文件
				if (f2.getName().endsWith(".txt")) {
					System.out.println(f2.getName());
				}
			}
		}
	}
}

5.过滤器:将需要数据留下来,不需要数据过滤掉.

/**
 * 自定义文件过滤器类
 */
public class MyFilter implements FilenameFilter{
	/**
	 * 过滤方法
	 * @param dir 要过滤文件对象
	 * @param name要过滤文件名
	 */
	@Override
	public boolean accept(File dir, String name) {
		if (name.endsWith(".txt")) {
			return true;
		} else {
			return false;
		}
	}
}
public static void main(String[] args) throws IOException {
		//获得目录对象
		File f1=new File("cc");
		
		//判断当前目录是否存在
		if (f1.exists()) {//存在
			//创建一个过滤器对象
			FilenameFilter mf=new MyFilter();
			//用过滤器获得当前目录下满足条件以.txt结尾子文件
			String[] files=f1.list(mf);
			//遍历输出
			for (String f2 : files) {
				System.out.println(f2);
			}
		} else {
			System.out.println("目录不存在");
		}
}

1.IO流:将数据从一个地方传输另一个地方.

2.流的分类:

2.1:按输出方向分:以程序为参数物.

输入流:将文件中数据读取到程序中.

注意:如果文件不存在,输入流会抛异常(报错).

输出流:将程序中数据写入到文件中.

注意:如果文件不存在,先创建文件,再向文件中写入数据.

2.2:按单元分:bit(位),byte,kb,mb,g,t,p

字节流:以字节为单元传输的流.

作用:用来传输部分文本文件,图片,视频,二进制文件.

字符流:以字符为单元传输的流.

作用:用来传输文本文件.

2.3:按功能分:

节点流:原始流.

处理流:封装了原始流.

3.装饰者模式:将原有类的对象进行封装,使其功能更强大.

4.基本字节流(原始字节流)

4.1:字节输入流:InputStream->FileInputStream

4.1.1:一个字节一个字节的读取

eg:public static void main(String[] args) throws IOException{
		//声明一个流对象
		FileInputStream fis=null;
		try {
			//1.创建流对象
			fis=new FileInputStream("bb\\b.txt"); 
			/*2.用流来读取文件中内容,一个字节一个字节的读取,*/
			//返回的是读取的内容,先读取一次
			int content=fis.read();
			//接着读
			while (content!=-1) {
				//将读取的字节内容转换为字符输出
				System.out.print((char)content);
				//接着读
				content=fis.read();
			}
			System.out.println("读取完毕!");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			//3.关流
			if (fis!=null) {
				fis.close();
			}
		}
	}

4.1.2:按字节数组的读取

	eg:public static void main(String[] args) throws IOException {
		//声明流对象
		FileInputStream fis=null;
		
		try {
			//1.创建流对象
			fis=new FileInputStream("bb\\b.txt");
			/*2.用流对象读取内容*/
			//准备一个数组
			byte[] b=new byte[5];
			//先读取一次,返回的是读取的长度,读取的内容存在数组中.
			int len=fis.read(b);
			//接着读
			while (len!=-1) {
				System.out.println("读取的长度:"+len);
				//先将读取的内容转换为String类型再输出
				String s1=new String(b, 0, len);
				System.out.println(s1);
				//接着读
				len=fis.read(b);
			}
			System.out.println("读取完毕");
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			//3.关闭对象
			if (fis!=null) {
				fis.close();
			}
		}
	}

4.2:字节输出流:OutputStream->FileOutputStream

	eg:public static void main(String[] args) throws IOException {
		//声明流对象
		FileOutputStream fos=null;
		try {
			//1.创建流对象,第二个参数是否向文件末尾追加内容
			fos=new FileOutputStream("bb\\c.txt",true);
			/*2.用流对象向文件中写入内容*/
			fos.write("Hello Java".getBytes());
			fos.write("Hello Stream".getBytes());
			fos.write("我是千锋人".getBytes());
			System.out.println("写入完毕");
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			//3.关流
			if (fos!=null) {
				fos.close();
			}
		}
	}

4.3:文件的拷贝

	eg:public static void main(String[] args) throws IOException {
		//声明流对象
		FileInputStream fis=null;
		FileOutputStream fos=null;
		try {
			//1.创建输入流和输出流对象
            fis=new FileInputStream("C:\\Users\\sx\\Desktop\\image\\4.jpg");
            fos=new FileOutputStream("bb\\a.jpg");
			/*用流边读取边写入*/
			//准备一个数组
			byte[] b=new byte[1024];
			//先读取一次,返回读取的长度,读取的内容存到数组中
			int len=fis.read(b);
			//判断,接着读
			while (len!=-1) {
				//将读取的内容写入到文件中
				fos.write(b, 0, len);
				//接着读
				len=fis.read(b);
			}
			System.out.println("图片拷贝成功");
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			//3.关流
			if (fis!=null) {
				fis.close();
			}
			if (fos!=null) {
				fos.close();
			}
		}
	}

文件与二进制数据互转-ByteArrayOutputStream // 获取二进制数据 public static byte[] getFileBinary(String filePath) {     FileInputStream fis = null;     BufferedInputStream bis = null;     ByteArrayOutputStream baos = null;     try { 阅读详情

相关推荐

eNSP-Pro配置又丢了?手把手教你用导出功能防患于未然

本文详细介绍了eNSP-Pro配置防丢失的全套方案,包括运行时内存、虚拟存储设备和宿主机文件系统的配置存储机制,以及多维度备份策略和特殊场景下的恢复技巧。通过优化保存流程、自动化定时导出和版本化管理,帮助网络工程师有效防止配置丢失,提升工作效率。

weixin_42665725的博客 244

字节输出流

字节输出流(OutputStream)是用于将数据写出到外部的流。它是一个抽象类,具体的实现类包括文件输出流(FileOutputStream)、字节数组输出流(ByteArrayOutputStream)等。可以使用字节数组输出流(ByteArrayOutputStream)进行换行操作,然后再将结果写出到具体的输出流中。续写数据: 如果需要将数据追加到已有的文件末尾而不是覆盖原有内容,可以使用带有。换行: 换行符用于在文本文件中表示换行。常见的换行符包括回车符(:刷新输出流,将缓冲区中的数据立即写出。

yuxialuozi的博客 2360

【Matlab深度学习】GPU加速实战:从环境配置到性能优化

本文详细介绍了如何在Matlab中为深度学习任务配置GPU加速环境并进行性能优化。文章从GPU加速的必要性讲起,手把手指导安装NVIDIA驱动、CUDA和cuDNN核心三件套,并验证环境。重点讲解了如何利用gpuArray将数据和模型迁移至GPU,以及通过内存优化、计算优化和多GPU并行等策略充分释放GPU算力,大幅缩短深度学习模型的训练时间。

weixin_29061465的博客 492

字节输出流:OutputStream

字节的数据是以byte类型为主实现的操作,在进行字节内容输出的时候可以使用OutputStream类完成,类的基本定义: public abstract class OutputStream extends Object implements Closeable,Flushable 首先可以发现这个类实现了两个接口,于是基本定对应关系如下: Closeable Flushable ...

qq_43618208的博客 611

基于 YOLOv26 的光伏板热斑检测系统:红外+可见光

本文提出了一种基于YOLOv26的光伏板热斑检测系统,采用红外+可见光双模态融合方案。系统架构包含数据预处理、热斑检测、故障诊断和维修决策等模块,结合无人机巡检与地面监控。关键技术包括YOLOv26目标检测模型、双模态数据融合、边缘计算部署等。研究构建了包含多种故障类型的光伏板专业数据集,并采用数据增强技术提升模型性能。系统实现了热斑检测、分类(轻微/中等/严重/危急)以及功率损失评估等功能,为光伏电站智能运维提供解决方案。

一键难忘的博客 497

Ceph入门到精通-更换osd、扩容osd

【代码】Ceph入门到精通-更换osd、扩容osd。

隔壁老瓦的专栏 1548

26. file和字节流

1.File类:文件和目录路径名的抽象表示 2.绝对路径:带盘符的路径. 相对路径:相对其他文件或目录的一个路径叫相对路径. 如果当前文件或目录相对其他盘符的的文件或目录来说,此时相对路径==绝对路径. 如果当前文件或目录相对当前所有在的盘符的文件或目录来说,此时相对路径!=绝对路径. 根路径:相当当前项目的路径. 3.file类常用方法: public static void main(String[] args) { //获得文件对象 File f1=new File(“aa\a.txt”); Syst

qq_44949002的博客 259

机器人学(三):手眼标定

主要讲了eye-to-hand的手眼标定求解算法,包括AX=XB和AX=YB两种情况,包含SVD法、Tsai-Lenz法、最小二乘法等,从原理到解法再到算法代码实现,包括matlab代码、C++代码、库的使用等,简单明了,容易在实际项目中进行应用

行者无疆的博客 2554

File类&IO流

File类&IO流 一 、File类 1.概述 java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。 2.构造方法 方法 含义 public File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例 public File(String parent, String child) 从父路径名字符串和子路径名字符串创建新的 File实例 public File(File pare

qq_44736296的博客 205

Python爬虫实战:利用Playwright与反反爬技术抓取Crunchbase企业数据

在当今数据驱动的商业环境中,获取准确的企业信息对于市场分析、竞争情报和投资决策至关重要。Crunchbase作为全球领先的企业信息平台,包含了数百万家公司、投资者和关键人员的详细数据。本文将深入探讨如何使用Python最新爬虫技术Playwright,结合多种反反爬策略,高效抓取Crunchbase企业数据。我们将从爬虫基础概念讲起,逐步深入到高级技巧,并提供完整的代码实现,帮助读者掌握现代网络数据采集的核心技术。网络爬虫技术自互联网诞生以来经历了显著演变。

2201_76125261的博客 1834

Autosar CAN 网络管理标准文档

Autosar CAN 网络管理标准文档

蚂蚁小兵 926

第六章 文件&IO流

6.1、File类 描述:该类是文件和目录路径名的抽象表示 构造方法: 方法 描述 public File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例 public File(String parent, String child) 从父路径名字符串和子路径名字符串创建新的File实例 public File(File parent, String child) 从父抽象路径名和子路径名字符串创建新的File实例 成员方法:

轻松的小希 6248

044、Edge Impulse的音频分类实战

上周调试一块STM32WBA52开发板,板载PDM麦克风死活采不到有效数据。示波器怼上去,时钟线波形漂亮得像教科书,数据线却像心电图——全是毛刺。折腾半天发现是电源纹波干扰,给麦克风单独加了个LC滤波,世界清净了。这种坑,做音频分类的嵌入式工程师迟早要踩一遍。

2401_88858637的博客 56

JavaSE基础学习Term4--File类&IO流

File和IO

m0_75058032的博客 1009

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

File文件类&IO流

IO流是传输数据的一套机制。Input输入从硬盘中读取数据到内存中Output输出从内存中写出数据到硬盘中Java中的IO流分为 字节流和字符流字节流能够处理任意类型的文件字符流只能处理普遍文本文件输入流输出流字符流ReaderWriter字节流以上的四大类都是抽象类,实际使用的都是它们的子类。

Zgm050718的博客 538

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

File类&递归&IO流

1.File类 File表示文件或者文件夹(目录)的路径,路径可以存在也可以不存在 //使用File类的构造方法创建对象 File f1=new File("C:\\itheima\\a.txt"); //使用父路径和子路径创建对象(父路径是一个String) File f2=new File("C:\\itheima","a.txt"); //使用父路径和子路径创建对象(父路径是一个File对象) File dir=new File("C:\\itheima"); File f3=new File(d

weixin_48023476的博客 188

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Java进阶之File类&递归&IO流

Java进阶之File类&递归&IO流一、File类1.1 File类概述1.2 File类的构造方法1.3 绝对路径和相对路径1.4 File的获取方法1.5 File类的判断方法1.6 File类的创建功能1.7 File类的删除功能1.8 File类的遍历方法二、递归2.1 递归遍历文件夹2.2 过滤器的使用三、IO流3.1 初识IO流3.2 字节流3.2.1 字节输出流3.2.1.1 文件续写3.2.1.2 文件换行3.2.2 字节输入流3.2.3 文件复制3.3 字符流3.3.1

tysearch的博客 189

File&字节流& 字符流&IO特殊操作流

File类介绍它是文件和目录路径名的抽象表示文件和目录是可以通过File封装成对象的对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的File类的构造方法方法名说明通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例从父路径名字符串和子路径名字符串创建新的 File实例从父抽象路径名和子路径名字符串创建新的 File实例。

m0_62272971的博客 214

Java常用API&集合&IO流

API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的字典 ,是JDK中提供给我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。 1.1.3 Scanner类演示使用API 什么是Scanner类 引用类型使用步骤 导包 创建对象 调用方法 Scanner使用步骤 查看类

Amour恋空的博客 408

19.1Java中的File类&递归&IO流.子节流

File类介绍它是文件和目录路径名的抽象表示文件和目录是可以通过File封装成对象的对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的File类的构造方法方法名说明通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例从父路径名字符串和子路径名字符串创建新的 File实例从父抽象路径名和子路径名字符串创建新的 File实例。

qq1092881420的博客 174

Java学习笔记之File&递归&IO流

1 File类 1.1 File类概述和构造方法【应用】 File类介绍 1、它是文件和目录路径名的抽象表示 2、文件和目录是可以通过File封装成对象的 3、对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以 是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的 构造方法: File(String pathname):通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例 File(String parent, String chil

qq_45454190的博客 246

文件操作&IO流

JAVA文件操作&IO流 java文件操作 File类 File类是对文件和文件夹操作的一个类,它有以下几个功能: 创建文件/文件夹 删除文件/文件夹 查找文件/文件夹(判断是否存在) 获取文件/文件夹 遍历文件夹 获取文件大小 由于不同操作系统的分隔符可能不同,所以File类有以下成员变量用于表示分隔符: 默认名称分隔符:File.separatorr,即"" 默认路径分隔符:File.pathSeparator,即";" File类的创建 File的构造方法有三种: 一个参数:其参数是文.

qq_45864946的博客 291

JAVA-异常&IO流

异常的概述: 异常就是Java程序在运行过程中出现的错误 异常的继承体系 Throwable Error Exception RuntimeException JVM默认是如何处理异常的 * main函数收到这个问题时,有两种处理方式: * a:自己将该问题处理,然后继续运行 * b:自己没有针对...

sentiments的博客 288

[2017.11.19]异常&File类&IO流

异常1.IO流的前奏: 1)异常类: 2)File类2.异常 举例: 有一个班长骑车出去旅行 1)在骑行的过程中,前方的山路坍塌了,导致它不能骑行了——>不可抗力的因素 2)在骑行的过程中,发现轮胎没气了,也会出现问题———–>骑行志强应该检查的问题 3)山路两边是石子,中间是平坦的大道,但是班长就喜欢在边

Lily_Evans的博客 335

java_第十一章_IO流——File类&IO流&节点流&缓冲流&转换流&标准输入输出流&打印流&数据流&对象流&随机存取文件流&NIO2

输入input:读取外部数据(磁盘、光盘等存储设备的数据)到程序(内存)中。*输出output:将程序(内存)数据输出到磁盘、光盘等存储设备中。*直接作用在文件上:节点流;*作用在已有流上:处理流*字节流不能读文本文件;*字符流不能读非文本文件。

weixin_47687315的博客 212
上一篇: Web项目专项训练——火车车次信息管理系统代码分享
下一篇: java代码实现复制一个文件夹&独特流中的内存流、打印流、对象流(序列化和反序列化)
Java_LXM
博客等级 码龄7年 39粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值