字节流

I/O流——其他流

蹲街弑〆低调 提交于 2020-04-02 21:30:26
其他流 一、ObjectInputStream/ObjectOutputStream ① ObjectInputStream和ObjectOutputStream分别与FileInputStream和FileOutputStream一起使用时,可以对应用程序提供对对象的持久存储。我们把对象以某种特定的编码格式写入称之为“序列化”。把写入的编码格式内容还原成对象称之为“反序列化”。 ② 被序列化的对象必须实现Serializable接口。 序列化示例: 1 //必须实现Serializable接口 2 class Student implements Serializable{ 3 private String name; 4 private int age; 5 public Student(String name, int age) { 6 super(); 7 this.name = name; 8 this.age = age; 9 } 10 public String getName() { 11 return name; 12 } 13 public void setName(String name) { 14 this.name = name; 15 } 16 public int getAge() { 17 return age; 18 } 19 public

字符流;字符输入流;字符输出流;字符流的拷贝;文件续写;字符高效输入缓冲流;字符高效输出缓冲流 (Java Day20)

♀尐吖头ヾ 提交于 2020-03-22 02:14:04
一,字符流 编码:把字符按照一定的方式转换为对应的数字,【就是把内存中的资源存放到磁盘文件的过程;磁盘文件中存放的都是数字【以字节的方式存储的】】 解码:把文件中的存储的数字按照一定的方式转换为对应的字符 编码使用的转换方式和解码使用的转换方式如果一致的看到的就是正常的内容 编码使用的转换方式和解码使用的转换方式如果不一致看到的就是非正常的内容【乱码】 使用字节流处理字符【字符串】的问题 使用字节流写字符【字符串】 可以使用,但是需要先把字符串【字符】转成字节数组,再存储到文件中,比较麻烦 ​ 字符--->字节数---->进行写出【写出到文件】 2. 使用字节流读取字符 如果是纯英文,可以一次读取一个字节或者读多个没有影响 如果是纯中文,可以一次读取两个字节(GBK)那就没有毛病,读取三个字节就会出 ​ 3. 现乱码的现象 如果是中英文混杂,每次不知道读取多少个字节,因此无论字节数组准备多大,都有可能会出现乱码【无法避免乱码的现象】导致字节流操作纯文本文件的时候会出现乱码的现象 代码示例 package com.ujiuye.demo; import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class Demo { public static void main

字节缓冲流、字符流

我只是一个虾纸丫 提交于 2020-03-17 11:22:01
1. 字节缓冲流 - 输出字节缓冲流:BufferedOutPutStream(OutPutStream) flush()刷新缓冲区 - 读入字节缓冲流:BufferedInPutStream(InputStream) 2. 为什么出现字符流 - 因为字节流操作中文不方便 - Idea:默认UTF-8 - win:GBK 3. java常用字符码 - ASCII:占一字节, 英文,数字,特殊符号*@ - GBK:英文1字节 中文两字节 - UTF-8:英文1字节 中文三字节 4. 字符串编码解码方法 - 编码:getBytes() getBytes("UTF-8") - 解码:new String(bys[]) new String(bys[],"UTF-8") 5. 字符流及字符流处理编码 - 字符的输出流:OutputStreamWriter(new FileOutputStream("文件路径")) OutputStreamWriter(new FileOutputStream("文件路径"),“字符集”) - 字符的输入流:InputStreamReader(new FileInputStream("文件路径")) InputStreamReader(new FileInputStream("文件路径"),“字符集”) 6. 字符流写数据五种方式 - write(int)

java学习笔记16--I/O流和文件

不问归期 提交于 2020-03-14 14:26:02
本文地址: http://www.cnblogs.com/archimedes/p/java-study-note16.html ,转载请注明源地址。 IO(Input Output)流 IO流用来处理设备之间的数据传输, 对数据的操作是通过流的方式, Java用于操作流的对象都在IO包中 输入/输出流可以从以下几个方面进行分类 从流的方向划分: 输入流、输出流 从流的分工划分: 节点流、处理流 从流的内容划分: 面向字符的流、面向字节的流 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。 字节流和字符流的区别: 读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。 处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。 结论:只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。 流按流向分为:输入流、输出流 IO流常用基类 字节流的抽象基类: •InputStream,OutputStream。 字符流的抽象基类: •Reader, Writer。 注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。 如:InputStream的子类FileInputStream。 如

Java IO流体系

本小妞迷上赌 提交于 2020-03-07 14:25:21
文章目录 一、 IO流体系 二、字节流 2.1、字节读取 2.2、字节写入 三、字符流 3.1、字符读取 3.2、字符写入 一、 IO流体系 二、字节流 2.1、字节读取 2.2、字节写入 三、字符流 3.1、字符读取 3.2、字符写入 来源: CSDN 作者: xiaojin21cen 链接: https://blog.csdn.net/xiaojin21cen/article/details/104712206

IO流

吃可爱长大的小学妹 提交于 2020-03-04 18:52:37
IO流 流的概念 IO流的分类 字节流和字符流 字节流 字符流 输入流和输出流 输入流 输出流 Java的IO流对象 字节输入流(InputStream) InputStream中的三个基本读方法 字节输出流OutputStream OutputStream中的三个基本写方法 其他方法 字符输入流Reader 主要方法 字符输出流Writer 流的概念     流的本质,数据传输,根据数据传输的特性将流抽象为各种类,方便更直观的进行数据操作。     流的作用:为数据源和目的地建立一个输送通道。      Java中将输入输出抽象称为流,就好像水管,将两个容器连接起来。流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流.      Java中的IO流采用装饰着模式,按功能划分流,可以根据需要动态的装配流以获得想要的功能。 IO流的分类 字节流和字符流 字节流     数据流中最小的单位为字节。 字符流     数据流中最小的单位为字符,Java中的字符采用Unicode编码,一个字符占用两个字节。 输入流和输出流 输入流      程序从输入流读取数据源,数据源包括外界(键盘,文件,网络等)。 输出流      程序向输出流写入数据,将程序中的数据输出到外界(显示器、文件,网络)。 Java的IO流对象 字节输入流

【Java基础】IO流

て烟熏妆下的殇ゞ 提交于 2020-03-04 11:04:36
我是 啤酒就辣条,一个Java。 学而时习之,不亦说乎?希望通过博客的形式,总结、分享,梳理自己、帮助他人。 另外,啤酒就辣条,味道不错哦~ 流的定义 流是一组有序的字节集合,是对数据传输的抽象。 流的本质是数据传输 ,根据传输的特性,流又被分为多种情况。 流的分类 按照数据类型可以分为 字符流 和 字节流 。 字节流 基本单位是一个字节(8bit),可以处理所有类型的数据。 字符流 基本代为是多个字节(一般是两个字节),一般处理字符数据。 字符流 某种意义可以看作,被包装过的 字节流 。因为 字符流 是基于 字节流 读取之后,查了特定的码表,进行字符转换的。所以,如果是字符类型的数据传输,首先使用 字符流 ,其他传输使用字节流。 按照输入输出方向可分为 输入流 和 输出流 。 输入流 只能进行读操作。 输出流 只能进行写操作。 Java种的类 根据流的分类,可得 字节输入流,字节输出流,字符输入流,字符输出流 。这四种分类分别对四个抽象类 InputStream、OutputStream、Reader、Writer ,Java种所有的IO流类都是继承其一。 字节输入流 InputStream 是所有字节输入流的超类。既然是输入流,肯定会有读的方法 read() /** * @param b 当前缓存区的数据 * @param off 当前缓存区已写入的位置 * @param

Java的IO流

半世苍凉 提交于 2020-03-01 21:15:09
流:一维的 单方向的 流的基础类:InputStream和OutputStream InputStream和OutputStream:字节读取流(把外界的输入当作字节的流) FileInputStream和FileOutputStream:文件读取流 以【程序】为基准来看,input是从外部文件中读取,“进入”程序中 output是从程序内部“输出”到外部设备(包括输出到屏幕、文件、打印机等) 1、InputStream★ InputStream特点: 1、所有输入字节流的超类 2、每次只能读一个字节(1 Byte)=(8 bit) 输入流读取步骤 1、创建字节输入流的子类对象 2、对象的read()换行 3、关闭输入流 释放资源 例一: InputStream is = new FileInputStream ( "d:\\IOTest.txt" ) ; //创建输入流子类对象,绑定数据目的(输入文件) int i = is . read ( ) ; //int read() 从输入流中读取数据的下一个字节 System . out . println ( ( char ) ( i ) ) ; is . close ( ) ; //close()关闭输入流 释放资源 例二: InputStream is = new FileInputStream ( "d:\\IOTest

12 IO流

半城伤御伤魂 提交于 2020-03-01 09:59:25
File类: 构造方法 * File(String pathname):根据一个路径得到File对象 * File(String parent, String child):根据一个目录和一个子文件/目录得到File对象 * File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象 创建功能 * public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了,返回false * public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了 * public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来 重命名和删除功能: * public boolean renameTo(File dest):把文件重命名为指定的文件路径 * public boolean delete():删除文件或者文件夹 重命名注意事项 * 如果路径名相同,就是改名。 * 如果路径名不同,就是改名并剪切。 删除注意事项: * Java中的删除不走回收站。 * 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹 判断功能: import java.io.File; import java.io.IOException; public

Java中IO流

心不动则不痛 提交于 2020-03-01 09:58:47
* IO流用来处理设备之间的数据传输 * Java对数据的操作是通过流的方式 * Java用于操作流的类都在IO包中 * 流按流向分为两种:输入流,输出流。 * 流按操作类型分为两种: * 字节流 : 字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的 * 字符流 : 字符流只能操作纯字符数据,比较方便。 字节流 |--InputStream(字节输入流,字节流的抽象父类,抽象类不能直接创建对象,必须使用子类) |--FileInputStream(文件字节输入流,就是以字节的形式读取文件内容) |--read()每次读取一个字节(byte),但是返回值类型,为int类型,防止出现文件提前结束 |--read(byte[] b)每次读取多个字节,将内容放入字节数组b中 |--BufferedInputStream(字节输入缓冲流,其实就是一个包装类,创建对象时要接收一个InputStream,内部封装了一个1024*8的字节数组) |--使用BufferedInputStream就不用再定义数组了 |--OutputStream(字节输出流,字节流的抽象父类) |--FileOutputStream(文件字节输出流,就是以字节的形式将内容写入到文件中) |--write(int b)一次写出一个字节 |--write(byte[] b