必要时可以通过可选参数delimiter和quotechar,提供默认的分隔符和引用字符。Python还提供了控制转义字符、行终止符等定界符的可选参数。...在第6章,你将了解如何在更为复杂的项目中使用pandas的数据frame,完成那些比对几列数据进行琐碎的检索要高端得多的任务。 2....例如,将复数存储为两个double类型的数字组成的数组,将集合存储为一个由集合的各项所组成的数组。 将复杂数据存储到JSON文件中的操作称为JSON序列化,相应的反向操作则称为JSON反序列化。...函数 说明 dump() 将Python对象导出到文件中 dumps() 将Python对象编码成JSON字符串 load() 将文件导出为Python对象 loads() 将已编码的JSON字符串解码为...Example: 以下代码片段实现了将任意(可序列化的)对象按先序列化、后反序列化的顺序进行处理: # 将Python对象编码成JSON字符串 data = [{'apple': 23, 'bear'
* InputStreamReader: * OutputStreamWriter: * 编码:字符—–编码字符集——–》二进制 * 解码:二进制—解码字符集———》字符 * 在处理文件时...,如果文件的字符格式和编译器处理格式不一样时,会出现乱码问题。...InputStreamReader :转换输入流–》将字节输入流转换成字符输入流 作用:为了防止文件使用字符输入流处理时出现乱码问题。...* * 对象反序列化的步骤: * 1.创建对象输入流,在构造方法当中可以包含其他的输入节点流,如文件输入流 * 2.通过readObject()方法读取对象。...3,删除文件相关函数: delete():删除空目录或文件(ps只能是空目录) deleteOnExit():在虚拟机终止时删除文件。
编码 字符编码就是按照某种格式某种规定将字符存储在计算机中。字符编码有非常多,每个国家都有自己规定的字符编码。...常见的字符编码有几种:ASCII, Unicode, UTF-8, GBK(简体繁体融于一库)等 几种不同常用编码模式的特征: GBK: 中文字符 2 字节,英文字符 1 字节;(多用于中文系统的默认编码...,如 Windows 系统的中文系统默认编码) UTF-8: 中文字符 3 字节,英文字符 1 字节; Unicode: 中文、英文字符都是 2 字节; 2. java.io.File 的基本操作 java.io.File...,缓冲各个字符,从而提供字符、数组和行的高效读取。...但有的时候会遇到一种情况:某个类的有些属性需要序列化,而其他属性不需要被序列化,打个比方,如果一个用户有一些敏感信息(如密码,银行卡号等),为了安全起见,不希望在网络操作(主要涉及到序列化操作,本地序列化缓存也适用
File类 File类,文件和目录的抽象表示,创建,删除,获取,判断,遍历,大小。在使用过程中特别注意大小写对文件的影响或者一些异常。...读取字节数组时,read传入byte数组[定义好一次读取的长度,一般定义为1024]调用,获取读取的byte数组,并返回获取长度。...读取到空位结束(非-1) HashMap中的key自动排序(遍历)。 转换流 转换流,字符编码,ISO字符集,拉丁码表。GB中国国标,GB2312<GBK<GB18030。...FileInputStream字节输入,通过FileReader默认的UTF-8读取文件(IDE默认编码)。FileOutputStream输出FileWriter的UTF-8格式字节流到文件中。...序列化流 序列化流,把对象以流的方式写入到流中保存,对象的序列化ObjectOutputStream。反序列化流,以流的方式读取对象,对象的反序列化ObjectInputStream。
前面几篇介绍了java IO的基础部分,现在进入核心内容的学习,如File类、动态读取和序列化等,如下。...一、File类 1、概述 是 java.io 包中唯一代表磁盘文件本身的对象(可以通过 File 类操作文件和目录),定义了一些操作文件的方法,如新建、删除、重命名文件和目录等。...对象表示目录中所有文件和子目录名称组成的字符串数组,如果调用的 File 对象不是目录,则返回 null。...,有两种 InputStreamReader: 将字节的输入流按指定字符集转换为字符的输入流。...3)何时使用 1.当字节和字符之间有转换动作时; 2.流操作的数据需要编码或解码时; - 编码:字节/字节数组---->字符/字符数组 - 解码:字符/字符数组---->字节/字节数组 转换流作用:提供字节流与字符流之间的转换
字符流的抽象基类: •Reader , Writer。 注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。 •如:InputStream的子类FileInputStream。...•如:Reader的子类FileReader。 ? ?...extends InputStream> e) 可以用于多文件的合并 序列化 序列化流 •ObjectOutputStream 反序列化流 •ObjectInputStream 编码 字符流的出现为了方便操作字符...更重要是的加入了编码转换。 通过子类转换流来完成。 •InputStreamReader •OutputStreamWriter 在两个对象进行构造的时候可以加入字符集。...为了方便应用计算机,让它可以识别各个国家的文字。 就将各个国家的文字用数字来表示,并一一对应,形成一张表。 这就是编码表。 编码:字符串->字节数组 解码:字节数组->字符串
一:流的概念 在Java中,把一组有序的数据序列称为流。 如a.txt的文件拷贝到b.txt中。 在Java中流是使用统一的方式操作输入和输出的数据。...字符流处理的单元为 2 个字节的 Unicode 字符,可以操作字符、字符数组或字符串Java内用Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和java内Unicode 字符流之间的转换...3)根据流的角色 a)节点流,如FileInputStream b)包装流/处理流,如BufferedInputStream。...1)保存hello,您好时指定编码方式。 取数据时也指定编码方式。 2)采用这种方式完成文件的拷贝工作。...通过带缓冲区的输出流写数据时,数据先保存在缓冲区中,积累到一定程度才会真正写到输出流中。缓冲区通常用字节数组实现,实际上是指一块内存空间。flush()方法强制把缓冲区内的数据写到输出中。
dir2目录"); } } IO流 流的分类 按数据单位分:字节流(8 bit)、字符流(16 bit) 按流向分:输入流、输出流 字节流 字符流 输入流 InputStream Reader...将流中的数据读到数组中 4、关闭资源 写文件三步走: 1、创建流对象 2、写入数据 3、关闭资源 需要注意的是 在读取文件时,必须保证该文件已存在,否则报异常。...实现编码和解码的功能 编码:字符串-->字节数组 解码:字节数组-->字符串 InputStreamReader用法: 实现将字节的输入流按指定字符集转换为字符的输入流。...当其它程序获取了这种二进制流,就可以恢复成原来的Java对象 序列化的好处在于可将任何实现了Serializable接口的对象转化为字节数据,使其在保存和传输时可被还原 序列化是 RMI(Remote...有自动flush功能 PrintStream 打印的所有字符都使用平台的默认字符编码转换为字节。
一:流的概念 在Java中,把一组有序的数据序列称为流。 如a.txt的文件拷贝到b.txt中。 在Java中流是使用统一的方式操作输入和输出的数据。 从文件中读取,从键盘读取,从网络中读取......字符流处理的单元为 2 个字节的 Unicode 字符,可以操作字符、字符数组或字符串Java内用Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和java内Unicode 字符流之间的转换...字符流(一次可以处理一个缓冲区)一次操作比字节流(一次一个字节)效率高。 3)根据流的角色 a)节点流,如FileInputStream b)包装流/处理流,如BufferedInputStream。...1)保存hello,您好时指定编码方式。 取数据时也指定编码方式。 2)采用这种方式完成文件的拷贝工作。...通过带缓冲区的输出流写数据时,数据先保存在缓冲区中,积累到一定程度才会真正写到输出流中。缓冲区通常用字节数组实现,实际上是指一块内存空间。flush()方法强制把缓冲区内的数据写到输出中。
2.字节流如何转为字符流 字节输入流转字符输入流通过InputStreamReader实现,该类的构造函数可以传入InputStream对象。...先去查指定的编码表,将查到的字符返回。字节流可以处理所有类型数据,如:图片, MP3 ,AVI视频文件,而字符流只能处理字符数据。只要是处理纯文本数据,就要优先考虑使用字符流,除此之外都用字节流。...InputStream 字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。...可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。 序列化是为了解决在对对象流进行读写操作时所引发的问题。...每个 serializable 对象的类都被编码,编码内容包括类名和类签名、对象的字段值和数组值,以及从初始对象中引用的其他所有对象的闭包。 概念 序列化:把Java对象转换为字节序列的过程。
如:InputStream的子类FileputStream。 如:Reader的子类FileReader。...字符流Reader和Writer的故事 字符流Reader和Writer的故事从它们的继承图开始,直接看图 字符流 字符流的由来:因为数据编码的不同,因而有了对字符进行高效操作的流对象,字符流本质其实就是是基于字节流读取时...构造时使用系统的字符编码和默认字节缓冲区。 构造方法 1、FileReader(File file):创建一个新的 FileReader ,给定要读取的File对象。...FileWriter类 java.io.FileWriter类是写出字符到文件的便利类。构造时使用系统 默认的字符编码和默认字节缓冲区。...:通过指定的字符集解码字节数组 byte[] getBytes(String charsetName):使用指定的字符集合把字符串编码为字节数组 编码:把看得懂的变成看不懂的 String -- byte
根据处理数据类型的不同分为字符流和字节流 根据数据流入不同分为输入流和输出流 File类 java.io.File: 文件和目录路径名的抽象表示形式,和平台无关 File能新建、删除、重命名文件和目录,...字符流的工作方式是: 输出字符流:把要写入文件的字符序列(实际上是Unicode码元序列)转为指定编码方式下的字节序列,然后再写入到文件中 输入字符流:把要读取的字节序列按指定编码方式解码为相应字符序列...使用Java对象序列化,在保存对象时,会把其状态保存为一组字节,在未来,再将这些字节组装成对象。必须注意地是,对象序列化保存的是对象的”状态”,即它的成员变量。...由此可知,对象序列化不会关注类中的静态变量。 除了在持久化对象时会用到对象序列化之外,当使用RMI(远程方法调用),或在网络中传递对象时,都会用到对象序列化。...Transient 关键字的作用是控制变量的序列化,在变量声明前加上该关键字,可以阻止该变量被序列化到文件中,在被反序列化后,transient 变量的值被设为初始值,如 int 型的是 0,对象型的是
1.2 按处理数据单位不同:字节流、字符流 1字符=2字节、1字节(byte)=8位(bit)、一个汉字占两个字节长度。 字节流:每次读取(写出)一个字节,当传输的资源文件有中文时,就会出现乱码。...字符流:每次读取(写出)两个字节,有中文时使用该流就可以正确传输显示中文。...字节流和字符流的区别: 字节流读取单个字节,字符流读取单个字符(一个字符根据编码的不同,对应的字节也不同,如 UTF-8 编码是 3 个字节,中文编码是 2 个字节。)...数组长度写入此流 void flush(); 刷新此流 void close(); 关闭该流并释放与之相关的所有资源 2.3 Reader 字符输入流的父类,数据单位为字符。...节点流: FileReader:文件字符输入流(操作对象为File文件对象) CharArrayReader:字符数组输入流(操作对象为字符数组) 处理流: BufferedReader:字符输入缓冲流
/输出操作是以“流”的方式进行 在java.io包下提供各种接口 按操作数据单位不同分为:字节流(8bit)二进制文件,字符流(按字符)文本文件 按数据流的流向不同分为:输入流、输出流 按流的角色的不同分为...(效率会低一些),如FileReader、FileWriter 数据源就是存放数据的地方 处理流(也叫,包装流)是”连接“在已存在的流(结点流 或 处理流)之上,为程序提供更加强大的读写功能,如BufferedReader...序列化就是 保存数据时,保存数据的值和数据类型 反序列化就是 恢复数据时,恢复数据的值和数据类型 需要让某个对象支持序列化机制,则必须让其类是可序列化的,为了让某个类是可序列化的,该类必须实现如下两个接口之一...,需要实现Serializable 序列化的类中建议添加SerialVersionUID ,为了提高版本的兼容性 序列化对象时,默认将里面虽有属性都进行序列化,但除了static或transient修是的成员...序列化对象时,要求里面的属性的类型也需要实现序列化接口 序列化具备可继承性,也就是如果某类已经实现序列化,则它所有的子类也已经默认实现了序列化 这也就是个序列号(版本号) private static
,其中需要注意的是 创建多级目录时,mkdir创建失败,返回false,mkdirs创建成功,返回true(推荐使用mkdirs) 删除目录时,目录内不为空时,删除失败,返回false, 即只能删除文件或者空目录...,读到文件末尾时返回-1 int read(char cbuf[]) throws IOException 从输入流中读取字符到char数组中 Writer用于写出文本字符 public...字符编码 计算机存储的数据都是二进制的,而我们在电脑上看到的数字、英文、汉字等都是二进制转换的结果 将字符转换成二进制,为编码 将二进制转换为字符,为解码 字符编码 就是 自然语言和二进制的对应规则...字符集 就是一个编码表,常见的字符集有ASCII字符集、GBK字符集、Unicode字符集等,具体各个编码的介绍在这里就不介绍了。...该类的所有属性必须是可序列化的,如果有一个属性不需要可序列化的,则该属性使用transient 关键字修饰 ObjectOutputStream 该类实现将对象序列化后写出到外部设备,如硬盘文件 public
方法,可以操作字节数组,也可以操作单个字节 InputStream: 1.操作的数据都是字节 2.定义了输入字节流的基本共性功能 3.输入流中的方法都是read方法 read():读取一个字节并且返回,...:缓冲字符输入流 BufferedWriter:缓冲字符输出流 小结: InputStreamReader和OutputStreamWriter是字符和字节的桥梁,字符转换流 原理:字节流+编码表 FileReader...和FileWriter:作为子类仅作为操作字符文件的便捷类,也就是说当操作字符文件的时候,使用的是默认的编码表时,可以直接用,不需要用父类。...,必须要用字符转换流 什么时候用子类呢: 1.操作的是文件 2.使用的是默认编码 字符流.jpg 序列化的一些概念: 1.什么是Serializable接口: 一个对象序列化的接口,一个类只有实现了Serializable...实体(不删除原有字段),最终都可以反序列化成功。
如读/写文件,网络通讯等。 Java程序中,对于数据的输入/输出操作以”流(stream)”的方式进行。...(charl.off,.len):写入指定数组的指定部分6) write (string):写入整个字符串 write(string,off,len):写入字符串的指定部分 相关APl: String类...上面的要求,就是能够将基本数据类型或者对象进行序列化和反序列化操作 序列化和反序列化 序列化就是在保存数据时,保存数据的值和数据类型 反序列化就是在恢复数据时,恢复数据的值和数据类型 需要让某个对象支持序列化机制...当加入新属性时,序列化和反序列化会认为是原来的修改版,而不会认为是一个全新的类。...也就是序列化并不保存static或transient修饰的信息。 序列化对象时,要求里面属性的类型也需要实现序列化接口。
实现编码和解码的功能。 InputStreamReader InputStreamReader将一个字节的输入流转换为字符的输入流。...说明:文件编码的方式(比如:GBK),决定了解析时使用的字符集(也只能是GBK)。...最多两个字节编码所有字符 GBK:中国的中文编码表升级,融合了更多的中文文字符号。最多两个字节编码 Unicode:国际标准码,融合了目前人类使用的所字符。为每个字符分配唯一的字符码。...编码应用 编码:字符串-->字节数组 解码:字节数组-->字符串 转换流的编码应用 可以将字符按指定编码格式存储 可以对文本数据按指定编码格式来解读 指定编码表的动作由构造器完成 使用要求: 客户端/...练习 从键盘输入字符串,要求将读取到的整行字符串转成大写输出。然后继续进行输入操作, 直至当输入“e”或者“exit”时,退出程序。
IO流 IO流分类 File类 注意,\在文件中是路径的分隔符,但是在java编程中一个\的意思时转义符,在java中\\或者/才是文件的分隔符 文件类里面的基础方法 文件的新建,删除 创建单层目录,...注意:如果向一个.txt里面写入数据,那么默认会覆盖掉里面原来的数据,即删除掉原有数据,来写入新数据,而不是追加写入 转换流 注意:在转换字符流的时候,设置的字符集编码要与读取的文件的数据的编码格式一致...,不然乱码 标准输入和输出流 对象流 序列化与反序列化只针对对象的各种属性,不包括静态成员变量 对象的序列化与反序列化 对象序列化和反序列化使用的对象要严格一致 随机存储流 RandomAccessFile...=-1) { //第一个参数: 缓冲数据的数组 第二个参数:从数组的哪个位置开始转化字符串 第三个参数:总共转化几个字节...,设置的字符集编码要与读取的文件的数据的编码格式一致,不然乱码 ---- 标准输入和输出流 public class test { public static void main(String
6.3、多种字符编码集的说明 07、标准输入、输出流 08、打印流 09、数据流 10、对象流 10.1、对象序列化机制的理解 10.2、对象流序列化与反序列化字符串操作 10.3、自定义类实现序列化与反序列化操作...:提供字节流与字符流之间的转换 * * 3.解码:字节、字节数组 --->字符数组、字符串 * 编码:字符数组、字符串 ---> 字节、字节数组 * * 4.字符集 */ public class InputStreamReaderTest...* OutputStreamWriter:将一个字符的输出流转换为字节的输出流 * * 2.作用:提供字节流与字符流之间的转换 * * 3.解码:字节、字节数组 --->字符数组、字符串 * 编码:字符数组...* * 1.3练习: * 从键盘输入字符串,要求将读取到的整行字符串转成大写输出。然后继续进行输入操作, * 直至当输入“e”或者“exit”时,退出程序。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
领取专属 10元无门槛券
手把手带您无忧上云