JAVA IO流学习

File类:

File类是java.io包中很重要的一个类

File类的对象可以代表一个文件或者目录,可以修改文件大小、文件最后修改日期、文件名等

File对象不能操作文件的具体数据,即不能对文件进行读和写的操作

File的构造方法:

File(String pathname)  -------指定文件(目录)名和路径创建文件对象

File类的常用方法:

package file;import java.io.File;
import java.io.IOException;
import java.util.Date;public class FileDemo1 {public static void main(String[] args) throws IOException {/*一个File对象可以代表具体的文件或者目录 , 是对文件或者目录的抽象表示*/File f1=new File("D:\\java测试专用\\file测试用例");//指明详细的路径和文件名,注意用用双斜线或者反斜杠//指明详细的路径和目录名,注意用双斜线f1.createNewFile();//该名称文件不存在时,在该路径下创造出文件  原子地创建一个由该抽象路径名命名的新的空文件。System.out.println(f1.exists());//判断文件是否存在System.out.println(f1.canRead());//判断文件是否可以读取System.out.println(f1.canWrite());//判断文件是否可以写入System.out.println(f1.getParent());//返回此抽象路径的父级路径,如果不存在则返回NULLSystem.out.println(f1.getName());//获取路径名称System.out.println(f1.isDirectory());//测试此路径名是否为目录System.out.println(f1.isFile());//判断是否为普通文件System.out.println(f1.isHidden());//是否为隐藏文件System.out.println(f1.lastModified());//返回最后修改时间System.out.println(f1.getPath());//将此抽象路径名转换为路径名字符串。System.out.println(new Date(1679652353967L));System.out.println(f1.length());//返回此抽象路径名代表的文件的长度}
}

输入及输出的概念:

输入:把电脑硬盘中的东西读到程序中叫做输入(input)

输出:进行数据的read操作,将程序中的内容写出到外部设备中叫做输出(output),进行数据的write操作。

字节流与字符流:

从数据流编码格式上划分为字节流字符流

字节流常用类:

字节输入流:FileInputStream;

字节输出流:FileOutputStream

字符流常用类:

字符输入流:FileReader;

字符输出流:FileWriter

输入流与输出流:

流按照数据的传输方向分为输入流输出流

输入流:往程序中传输数据叫做输入流

输出流:从程序中往外写数据叫做输出流

● InputStream和OutputStream的子类都是字节流 可以读写二进制文 件,主要处理音频、图片、歌曲、字节流,处理单元 为1个字节。

● Reader和Writer的子类都是字符流 主要处理字符或字符串,字符流处理单元为1个字符。

字节流将读取到的字节数据,去指定的编码表中获取对应文字字符

输入输出节点字节流:

InputStream的基本方法:

close();       关闭流释放内存资源

read();读取一个字节并以整数的形式返回(0~255),如果返回-1说明已到输入流的末尾

read(byte[ ] b);读取一系列字节并存储到数组b中,返回读取到的字节数,如果读取前已到输入流的末尾。则返回-1

read(byte[ ] b,int off,int len);从索引off处开始读取len个字节并存储到数组b中,返回读取到的字节数,如果读取前已到输入流的末尾。则返回-1

OutputStream的基本方法:

close();关闭流释放内存资源

flush();刷新输出缓存区,直接将缓存区的数据输出而不必等到缓存区满,通常用在多线程的环境中,它可以确保当前缓存内容被输出,并立即释放内存

writre(int b);向输出流中写入一个字节数据,该字节数据为参数b的低八位

write(byte[ ] b);将一个数组写入到输出流中

write(byte[ ] b,off,len);将一个数组从索引off处开始len个字节写入到输出流中

节点流与处理流:

根据封装类型不同,流又被分为:

节点流、处理流

节点流:如果流封装的是某种特定的数据源,如文件、字符数组、字符串等,则称之为节点流

处理流:如果流封装的是其它对象,则称之为处理流。处理流提供了缓冲功能,提高了读写效率,同时增加了一些新的方法

节点流中常用类:

字节输入流:FileInputStream

字节输出流:FileOutputStream

字符输入流:FileReader

字符输出流:FileWrite

处理流中常用类:

缓冲字节输入流:BufferedInputStream

缓冲字节输出流:BufferedOutputStream

缓冲字符输入流:BufferedReader

缓冲字符输出流:BufferedWriter

输入输出节点字符流:

Reader的基本方法:

close();       关闭

read();读取一个字节并以整数的形式返回(0~255),如果返回-1说明已到输入流的末尾

read(char[ ] b);读取一系列字节并存储到数组b中,返回读取到的字节数,如果读取前已到输入流的末尾。则返回-1

read(char[ ] b,int off,int len);从索引off处开始读取len个字节数据并存储到数组b中,返回读取到的字节数,如果读取前已到输入流的末尾。则返回-1

Writer的基本方法:

close();关闭流释放内存资源

flush();刷新输出缓存区,直接将缓存区的数据输出而不必等到缓存区满,通常用在多线程的环境中,它可以确保当前缓存内容被输出,并立即释放内存

writre(int b);向输出流中写入一个字节数据,该字节数据为参数b的低八位

write(char[ ] b);将一个字符类型数组的数据写入到输出流中

write(char[ ] b,off,len);将一个字符类型数组从索引off处开始len个字节的字符写入到输出流中

对象输入输出流:

package chardemo;import java.io.*;
import java.util.Date;public class ObjectDemo {/*对象输入输出流: 把Java中的对象输出到文件中, 从文件把对象输入到程序中为什么要把对象输出到文件中?new Student(“张er”,20);数据存储在对象中,对象是在内存中存储,一旦程序运行结束,对象就会销毁有时需要将对象的信息长久保存,就需要将对象输出到文件中,长久保存。  举例系统升级   关闭服务器时将对象保存起来,升级完毕,重新再把数据还原回来把对象输出到文件的过程也称为对象的序列化,再把对象从文件输入到程序的过程称为对象的反序列化,反序列时会生成一个新的对象,所以反序列化也是创建对象的一种方式*/public static void main(String[] args) throws IOException, ClassNotFoundException {// String s=new String("fsde");//Date date=new Date();Student student=new Student(66,"zz");//对象输出   对象的序列化// FileOutputStream out=new FileOutputStream("D:\\demo.txt");//   ObjectOutput output=new ObjectOutputStream(out);//output.writeObject(s);//output.writeObject(date);/*  output.writeObject(student);output.flush();output.close();
*///对象输入   对象反序列化FileInputStream inputStream=new FileInputStream("D:\\demo.txt");ObjectInputStream objectInputStream=new ObjectInputStream(inputStream);//        String s=(String)objectInputStream.readObject();Date date=(Date) objectInputStream.readObject();//System.out.println(s);System.out.println(date);Student student1=(Student)objectInputStream.readObject();System.out.println(student1);objectInputStream.close();}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/795611.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么时候外部依赖接口慢拖死应用?

A应用调用B应用,当B应用的接口响应耗时平均都在3000ms的时,如果当前A调用B的请求数达300/s 那么在3s内A应用在途的请求数 300 * 3 900 ,按照servlet原理一个http的请求需要一个线程提供服务,即需要900个线程提供服务&#xff0c…

政安晨【AIGC实践】(一):在Kaggle上部署使用Stable Diffusion

目录 简述 开始 配置 执行 安装完毕,一键运行 结果展示 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: 人工智能数字虚拟世界实践 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提…

MySQL中的redo log 和 undo log

undo log和redo log 先引入两个概念: 当我们做了一些操作 (update/delete/insert),提交事务后要操作MySql中的数据。 为了能够提升性能,引入了两块区域:内存结构和磁盘结构。 磁盘结构: 主要存储的就是数据页&#x…

【C语言基础】:文件操作详解(前篇:准备知识)

文章目录 一、什么是文件以及文件的分类1.1 程序文件1.2 数据文件1.3 文件名 二、文本文件和二进制文件2.1 数据在文件中的存储 三、文件的打开和关闭3.1 流和标准流3.1.1 流3.1.2 标准流 3.3 文件指针3.5 文件的打开和关闭 一、什么是文件以及文件的分类 文件是指存储在计算机…

编程新手必看,学习python中字符串数据类型内容(8)

1、 Python3 字符串 字符串是 Python 中最常用的数据类型。我们可以使用引号( ’ 或 " )来创建字符串。 创建字符串很简单,只要为变量分配一个值即可。例如: var1 Hello World! var2 "Runoob"Python 访问字符串中的值 Python 不支持单…

Linux(centos7)部署spark

Spark部署模式主要有4种:Local模式(单机模式)、Standalone模式(使用Spark自带的简单集群管理器)、Spark On Yarn模式(使用YARN作为集群管理器)和Spark On Mesos模式(使用Mesos作为集…

机器学习模型——关联规则

目录 关联规则 - 基本概念 关联规则的挖掘步骤: Apriori算法 Apriori算法简介: Apriori算法举例: Apriori算法优缺点: Apriori算法应用 FP-growth算法: FP-growth算法简介: FP-growth的数据结构: …

AI帮助写代码:在python中,如何替换字符串中指定位置的字符

用python编写一段代码,在下面的字符串中:#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,从第2个‘#开始,每个#前面加一个字符串 or ‘。 # 原始字符串 s "#1#2#3#4#5#6#7#8#9#10#11#12#13#14#15#…

多线程学习-线程池

目录 1.线程池的作用 2.线程池的实现 3.自定义创建线程池 1.线程池的作用 当我们使用Thread的实现类来创建线程并调用start运行线程时,这个线程只会使用一次并且执行的任务是固定的,等run方法中的代码执行完之后这个线程就会变成垃圾等待被回收掉。如…

2024最新GPT4.0使用教程:GPTs,AI绘画,AI换脸,AI绘画,文档分析一站式解决

一、前言 ChatGPT3.5、GPT4.0、相信对大家应该不感到陌生吧?简单来说,GPT-4技术比之前的GPT-3.5相对来说更加智能,会根据用户的要求生成多种内容甚至也可以和用户进行创作交流。 然而,GPT-4对普通用户来说都是需要额外付费才可以…

超强AI辅助工具:BitoCLI的简单使用

今天要推荐一个爱不释手的好东西–Bito; 从事相关工作的人大概率在自己的代码编辑器中已经用上了Bito的插件版本,所以这里主要介绍的是一个适合与所有人且方便快捷的Bito CLI,也就是Bito的命令行版本。 BitoCLI 从官方介绍来看,这是一款为 …

卸载不留痕,App Cleaner Uninstaller助你打造清爽Mac

在数字时代,我们的Mac设备上积累了大量的应用程序,其中一些可能不再需要或不再使用。随着时间的推移,这些不再使用的应用程序可能会占用宝贵的存储空间,影响设备的性能。为了解决这个问题,App Cleaner & Uninstall…

【C+ +初阶】前言篇章---C+ +的广袤

目录 1.C语言到C的过渡 2.C的发展历程 2.1C语言的诞生 2.2 c的历史版本 3.c 的地位 4. c的应用场景 4.1. 操作系统以及大型系统软件开发 所有操作系统几乎都是C/C写的 4.2. 服务器端开发 后台开发: 4.3. 游戏开发 4.4. 嵌入式 4.5. 数字图像处理 4.6. 人工智能 4.7.…

初始Java篇(JavaSE基础语法)(6)(继承和多态)(上)

Java学习篇 个人主页(找往期文章包括但不限于本期文章中不懂的知识点):我要学编程(ಥ_ಥ)-CSDN博客 目录 继承篇 为什么需要继承? 继承概念 继承的语法 父类成员访问 super关键字 子类构造方法 super和this的比较 再谈…

深度学习十大算法之深度Q网络(DQN)

一、简介 深度Q网络(DQN)是一种结合了深度学习和强化学习的算法,它在近年来成为了人工智能领域的一个热点。DQN首次被引入是在2013年,由DeepMind的研究人员开发。它标志着深度学习技术在解决高维度决策问题上的一大突破。 DQN的…

Python可视化之pandas

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.解决坐标轴刻度负号乱码2.解决中文乱码问题3.折线图Series.plot()&DataFrame.plot()4.条形图5.箱线图6.区域面积图(堆积折线图)7.散点…

Ideal的使用技巧

一、springcloud项目如何将多个服务放到services中一起启动 1、打开ideal,再view -> Tool Windows -> services 2、在services界面 找到 run configuration type -> springboot即可 二、配置临时的启动参数 1、在edit configurations中 2、选择相应的服务…

关于Linux下的进程状态(进程篇)

目录 Linux操作系统的一般进程状态 关于阻塞 关于挂起 Linux内核状态源代码: 关于僵尸进程 关于孤儿进程 Linux操作系统的一般进程状态 新建:字面意思运行:task_struct结构体在运行队列中排队,就叫做运行态阻塞:等待非…

基于springboot实现学科竞赛管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现学科竞赛管理系统演示 摘要 随着国家教育体制的改革,全国各地举办的竞赛活动数目也是逐年增加,面对如此大的数目的竞赛信息,传统竞赛管理方式已经无法满足需求,为了提高效率,竞赛管理系统应运而生。…

计算机语言 之【C++】入门级知识讲解(命名空间,C++输入输出,缺省参数,函数重载,引用,内敛函数,auto关键字,for循环,指针空值nullptr)

三点睡六点起,阎王夸我好身体 不到三点我不睡,太平间里抢C位 一、命名空间 1.命名空间的作用 2.命名空间定义 3.命名空间使用 二、C的输入输出 1.输入输出说明介绍 2.std命名空间的使用惯例 三、缺省参数 1.缺省参数概念 2.缺省参数分类 四、…