12 IO1

news/2025/4/2 5:07:19/

File类中的常用方法有哪些?

1.String getName() :获取文件名称

2.String getPath():获取文件路径

3.String getAbsolutePath():获取绝对路径

4.File getParentFile():获取上级目录文件

5.boolean exists():判断文件是否存在

6.boolean isFile() :是否是文件

7.boolean isDirectory():判断是否是目录

8.boolean delete() :删除文件

9.boolean mkdirs():创建当前目录和上级目录

10.File[] listFiles() :列出所有文件对象

中文乱码问题是怎么造成的? 如何解决?

编码使用的字符集和解码使用的字符集不相同就会造成乱码

解决方法:将解码后的乱码字符串重新使用该字符集重新进行编码,再使用对应的字符集进行解码

//编码
String str="中国人";
byte[] bytes = str.getBytes("UTF-8");
System.out.println(Arrays.toString(bytes));
//解码
String s = new String(bytes,"ISO-8859-1");//数组,字符集
System.out.println(s);
//乱码byte[] bytes2 = s.getBytes("ISO-8859-1");//将错误的解码方式后的错误字符 重新编码回去String s2 = new String(bytes2,"UTF-8");//数组,字符集System.out.println(s2);

什么是读? 什么是写?

读(read):将磁盘上的数据读取到内存中,能操作文件中的数据,对内存来说是输入操作,一次读一个字节,读到没有数据是返回-1

        //创建数据源File f = new File("file1/a.txt");//创建流对象FileInputStream fil = new FileInputStream(f);
//读StringBuilder sb = new StringBuilder(10);/while((data= fil.read())!=-1){//System.out.println((char)data);//转成字符sb.append((char)data);System.out.println(sb);//关闭资源fil.close();

写(write):将内存中的数据写到内存当中去,能操作文件中的数据,对内存来说是输出操作

//读取文件
File f = new File("file1/b.txt");
FileOutputStream fos = new FileOutputStream(f);//抛异常
//一次写一个字符
fos.write(68);
fos.write('F');
fos.write("KJHL".getBytes());//字符串转字符

六字箴言:读进来,写出去

字节流和字符流的区别是什么? 开发中如何选择?

字节流:由字节组成,可以用于任何对象,InputStream和OutputStream,主要操作二进制文件

字符流:由多个字符组成,用于处理字符类型的数据,Reader和Writer,主要操作文本文件

字节流和字符流完成读写的步骤是什么?

1.创建源或者目标对象

​ 输入操作:将文件中的数据流向程序中

​ 输出操作:将程序中的数据流向文件中

2.创建IO流对象,

​ 输入操作:创建输入流对象

​ 输出操作:创建输出流对象

3.具体的IO流操作

​ 输入操作:输入流对象的read方法

​ 输出操作:输出流对象的writer方法

4.关闭数据源

​ 输入操作:输入流对象.close()

​ 输出流操作:输出流对象.close()

缓冲流有什么特点?

比节点流更加高级,有装饰设计模式,他可以将默认的数组全部填写完成后再写出去

四大基流的包装流:

字节缓存 流:BufferedOutputStream,BufferedInputStream字符缓存流:BufferedRead,BufferedWrite

什么是序列化和反序列化?

序列化:将java的对象数据转成二进制并持久的保存在磁盘中,使用ObjiectOutputStream方法做序列化操作

反序列化:将磁盘中存储的二进制对象恢复成java对象,使用ObjiectInputStream方法做反序列操作

解决反序列化版本不一致的方法在类中提供一个固定的SerialVersionUID

class User implements Serializable {private static final long serialVersionUID = 1L;//TODO
}

http://www.ppmy.cn/news/74307.html

相关文章

05. 数据结构之队列

前言 队列(queue)是一种线性数据结构,队列中的元素只能先入先出(First In First Out,简称 FIFO)。队列和实际生活中的排队相对应,是一种和生活息息相关的数据结构,在很多系统中都会…

VMware ESXi 6.0 多网卡接入 多网段绑定 虚机接入不同网段

网卡要与对应网段的网络联通。不同的网卡接入不同网段的网络。要为vmware esxi 6 的多个虚机配置不同网段的ip地址,首先选择主机对应的网口分别插上处于在不同网段的网线。 配置管理网络 多个网口接入,只可以配置一个管理网络,就是只有一个网…

干货 | 利用SPSS进行高级统计分析第一期

Hello,大家好! 这里是壹脑云科研圈,我是喵君姐姐~ 你是否还在为分析实验数据而感到头疼?你是否还在苦于自己不知道如何选择合适的模型来分析数据? 本期我们就来为大家带来了利用SPSS软件进行高级统计分析…

【华为OD机试真题2023B卷 JAVA】模拟消息队列

华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 模拟消息队列 知识点排序 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 让我们来模拟一个消息队列的运作,有一个发布者和若干消费者,发布者会在给定的时刻向消息队列发送消息,若此时消息队列有消费者订阅,这…

为什么x86架构一个字节是8个bit

探究计算机存储的历史:为什么x86架构下一个字节是8个bit 原文链接:Some possible reasons for 8-bit bytes About author I’m a software developer. I live in Montreal. I sometimes give talks. Most of my income comes from my programming zines…

Cesium源码分享--气泡窗

Cesium气泡窗插件 在线api文档说明 在线体验地址 更多案例地址 免费gis数据 ps:如果可以的话,希望大家能给我个star,好让我有更新下去的动力; 实现原理: Cesium和我们平时常见的leaflet、ol以及arcgis api是不一样…

企业落地数字化转型,如何部署战略规划

当前环境下,各领域企业通过数字化相关的一切技术,以数据为基础、以用户为核心,创建一种新的,或对现有商业模式进行重塑就是数字化转型。这种数字化转型给企业带来的效果就像是一次重构,会对企业的业务流程、思维文化、…

Camtasia2023简体中文版屏幕录像 支持MP4/AVI/WMV等多种格式

在现在的网络互联网时代,越来越多的人走上了自媒体的道路。有些自媒体人会自己在网络上录制精彩视频,也有一些人会将精彩、热门的电影剪辑出来再加上自己给它的配音,做成大家喜欢看的电影剪辑片段。相信不管大家是自己平时有独特的爱好也好、…