目录 Java中的IO操作和缓冲区 一.简述 二.IO流的介绍 什么是流 输入输出流的作用范围 三.Java中的字节流和字符流 字节流 字符流 二者的联系 1.InputStreamReader 2.OutputStreamWriter 字节流和字符流的区别 读取单位不同 执行效率不同 使用对象不同 缓冲区的使用 四.效率测试 代码测试 输入测试 输出测试 主测试类 测试结果 结果分析 五.字节序 类型 C语言中的二进制和文本文件的读取效率比较 测试代码 测试结果 结果分析 六.思考总结 参考链…
IO流是用来处理设备之间的数据传输,Java对数据的操作是通过流的方式进行,而操作流的对象都封装到java.io包中.根据操作数据的种类可以把IO流分为字节流(InputStream,OutputStream)和字符流(Reader,Writer)或者根据流的流向分为输入流(InputStream,Reader)输出流(OutputStream,Writer) 字符流中继承体系结构: 字节流中的继承体系结构: FileWriter:字符输出流专门写入文本数据,使用后需要调用flush()方法,在…
一.InputStream重用技巧(利用ByteArrayOutputStream) 对同一个InputStream对象进行使用多次. 比如,客户端从服务器获取数据 ,利用HttpURLConnection的getInputStream()方法获得Stream对象,这时既要把数据显示到前台(第一次读取),又想把数据写进文件缓存到本地(第二次读取). 但第一次读取InputStream对象后,第二次再读取时可能已经到Stream的结尾了(EOFException)或者Stream已经close掉了…
在使用io操作之前,先看一下java中的文件类File如何使用.File包括文件和目录,对文件和目录的操作是新建目录mkdir,新建文件createNewFile,删除文件和目录delete,以及其他的一些操作. package zaojiahua; import java.io.File; import java.io.IOException; /* 对文件类的操作 */ public class Test { public static void main(String[] args) th…
1.知识点 1.1.课程回顾 1.2.本章重点 1.2.1  io操作 1.2.2  对象的序列化与反序列化 2.具体内容 2.1.Java IO 2.1.1.什么是IO IO其实就是输入.输出 I InputStream 输入流 O OutputStream 输出流 Java IO即Java输入输出系统.不管我们编写何种应用,都难免和各种输入输出相关的媒介打交道,其实和媒介进行IO的过程是十分复杂的,这要考虑的因素特别多,比如我们要考虑和哪种媒介进行IO(文件.控制台.网络),我们还要考虑具体…
IO的分类 第一种分法: 1.输入流 2.输出流 第二种分法: 1.字节流 2.字符流 第三种分法: 1.节点流 2.处理流 I/O当中的核心类: InputStream  <--------FileInputStream OutputStream <-------FileOutputStream 核心类的方法: InputStream: int read(byte[] b,int off,int len) OutputStream: void write(byte[] b,int off,i…
Java的IO流是实现输入/输出的基础,它可以方便地实现数据的输入\输出操作,在Java中把不同的输入\输出源抽象为"流",通过流的方式允许Java程序使用相同的方式来访问不同的输入/输出源.stream是从起源(source)到接收(sink)的有序数据. Java把所有传统的流类型(类或抽象类)都放在java.io包中,用以实现输入\输出功能. JavaAPI 1.6中java.io包 1.子节流  * 输入字节流 * -------------|InputStream 所有输入字…
对象序列化的概念 对象序列化使得一个程序可以把一个完整的对象写到一个字节流里面:其逆过程则是从一个字节流里面读出一个事先存储在里面的完整的对象,称为对象的反序列化. 将一个对象保存到永久存储设备上称为持续性.对象的序列化即可实现持续性. 一个对象要想能够实现序列化,必须实现  Serializable 接口或 Externalizable 接口. 对象序列化的作用 一.对象序列化可以实现分布式对象.主要应用例如:RMI(远程方法调用)要利用对象序列化运行远程主机上的服务,就像在本地机上运行对象时…
Python中文件的读写包含三个步骤:打开文件,读/写文件,关闭文件. 文件打开之后必须关闭,因为在磁盘上读写文件的功能是由操作系统提供的,文件作为对象,被打开后会占用操作系统的资源,而操作系统在同一时间内打开文件的数量是有限的.   打开文件: f=open('路径/文件名', '读写格式', '编码方式', '错误处理方式') 例如: f=open('/Users/noiccy/Desktop/PythonCode/test.txt','r', encoding='UTF-8', error…
以图片地址下载图片 读取给定图片文件的内容,用FileInputStream public static byte[] mReaderPicture(String filePath) { byte[] arr = null; try { File file = new File(filePath); FileInputStream fReader = new FileInputStream(file); arr = new byte[1024*100]; fReader.read(arr); }…
public static void main(String[] args) { //获取复制开始前系统时间毫秒值 long start=System.currentTimeMillis(); //文件复制,先设置源文件位置和目标文件位置 File sourceFile=new File("D:/HAO/movie.mp4"); File descFile=new File("D:/HAO1/movie.mp4"); //读取流 BufferedInputStrea…
一.读取全部文件: # -*- coding: utf-8 -*- f = open('qq_url.txt','r'); print f.read(); f.close(); 二.读取规定长度文件 # -*- coding: utf-8 -*- f = open('qq_url.txt','r'); print f.read(10); f.close(); 三.按行读取文件 # -*- coding: utf-8 -*- url_list = [] f = open('qq_url.txt',…
所谓IO,也就是Input与Output的缩写.在java中,IO涉及的范围比较大,这里主要讨论针对文件内容的读写 其他知识点将放置后续章节 对于文件内容的操作主要分为两大类 分别是: 字符流 字节流 其中,字符流有两个抽象类:Writer Reader 其对应子类FileWriter和FileReader可实现文件的读写操作 BufferedWriter和BufferedReader能够提供缓冲区功能,用以提高效率 同样,字节流也有两个抽象类:InputStream OutputStream…
缓冲区出现原因: Java对IO的读写都是经过中间途经--JVM虚拟机进行管理的,JVM调用OS操作系统继续完成IO操作.如此一来,整个过程耗费了不小的资源,为了尽量减少这样重复的周期性操作,出现了缓冲区,可以有效的提高系统的性能 一.IO缓冲区类 BufferedInputStream ===> 字节输入缓冲流 BufferedOutputStream ===> 字节输出缓冲流 BufferedReader ===> 字符输入缓冲流 BufferedWriter ===> 字符输…
1)File类操作文件的属性 1.File类的常用方法 1. 文件的绝对完整路径:getAbsolutePath() 文件名:getName() 文件相对路径:getPath() 文件的上一级目录:getParent() 文件的大小为:length() 删除文件:delete() 具体操作请参考如下代码: 2)IO流(堵塞型io) 如何读写文件? 分析:流是指一连串流动的字符,是以先进先出方式发送信息的通道 输入/输出流于数据源: java流的分类: 我们可以对它进行如下分类: · 按处理的数据…
一.JAVA I/O 输入输出流 1:编码问题 2:File类的使用 3:RandomAccessFile的使用 4:字节流的使用 5:字符流的使用 6:对象的序列化和反序列化 2: file类的使用. java.io.file类用于表示文件(目录) File类只用于表示文件(目录)的信息(名称,大小等),不能用于文件内容的访问. 3:RandomAccessFile的使用 RandomAccessFile java 提供的对文件内容的访问,既可以读文件,也可以写文件. RandomAccess…
基础知识 1.文件操作 Java语言统一将每个文件都视为一个顺序字节流.每个文件或者结束于一个文件结束标志,或者根据系统维护管理数据中所纪录的具体字节数来终止.当一个文件打开时,一个对象就被创建,同时创建一个流和该对象关联. 基于Java的平台无关性特点,Java的文件访问机制也是独立于文件系统.为了克服在Windows 和 UNIX系统下,不同的路径分隔符. Windows使用”\\”, Unix使用”/”, File类提供了 file.separator静态值来解决分隔符的问题.而绝对路径的…
1.基本IO操作     有时候我们编写的程序除了自身会定义一些数据信息外,还需要引用外界的数据,或是将自身的数据发送到外界,这时我们需要使用输入与输出. 1)输入与输出       输入:是一个从外界进入到程序的方向,通常我们需要“读取”外界的数据时,使用输入.所以输入是用来读取数据的 输出:是一个从程序发送到外界的方向,通常我们需要“写出”数据到外界时,使用输出.所以输出是用来写出数据的 2)节点流与处理流 按照流是否直接与特定的地方(如磁盘.内存.设备等)相连,分为节点流和处理流两类. 节…
目录:系统学习 Java IO---- 目录,概览 Reader Reader 类是 Java IO API 中所有 Reader 子类的基类. Reader 类似于 InputStream ,除了它是基于字符而不是基于字节的. 换句话说, Reader 用于读取文本,而 InputStream 用于读取原始字节. Writer Writer 类是 Java IO API 中所有 Writer 子类的基类. Writer 就像一个 OutputStream ,除了它是基于字符而不是基于字节的.…
1.5 JAVA的IO操作 参考链接:https://www.runoob.com/java/java-files-io.html 一.JAVA的IO操作 由于JAVA引用外界的数据,或是将自身的数据发送到外界,这时我们需要使用输入与输出.也就是JAVA的IO. 字符流通常是对控制台文本输入(Reader控制台写入程序数据)输出(Writer往控制台输出数据), 字节流通常是对文件的写入(InputStream从文件中读取数据)写出(OutputStream 向文件中写入数据). 1.1读取控制…
一.概述 在整个 Java.io 中最重要的就是5个类和一个接口.5个类指的是 File.InputStream.OutputStream.Reader.Writer,一个接口指的是Serializable.掌握了这些IO的核心操作那么对于Java中的IO体系也就有了一个初步的认识了. File(文件类):主要用来描述文件或目录的属性,例如:文件大小,修改文件名,删除文件,判断文件所在路径等. InputStream(字节输入流):抽象类,基于字节的输入操作,是所有输入流的父类.定义了所有输入流…
流的概念 程序中的输入输出都是以流形式,流中保存的实际上都是字节文件. 字节流与字符流 字节流的操作: 1)输入:inputStream, 2)输出:outPutStream; 字符流的操作: 1)输入主要使用:write类. 2)输出主要使用:reader类. 内容操作就四个类. 操作流程: 使用File类操作一定有路径问题,注意分隔符: 实际上四个操作类都是抽象类(区别接口,抽象类的成员都是抽象,并且只能单继承,接口可以有全局变量,但是接口可以多继承) IO操作属于资源操作,对于资源操作,操…
package seday06; import java.io.Serializable;import java.util.Arrays; /** * @author xingsir * 使用当前类来测试对象流的对象读写操作 * 当前类实例若想被对象流进行读写,那么必须实现接口:java.io.Serializable */public class Person implements Serializable { private static final long serialVersionUI…
window 路径分割符: \ 表示 windows 系统文件目录分割符 java 代码在 windows 下写某个文件的话需要下面的方式 D:\\soft\\sdclass.txt  其中一个单斜杠是用来转义的 代码和文件目录的关系: 对文件和目录增删改查 IO,输入和输出 Input/Output 把持久化设备上的数据读取到内存中的动作称为输入, Input 操作 内存中的数据持久化到设备上的动作, Output 输出操作 一般把输入和输出动作称为 IO 操作, IO 分为网络 IO 和文件…
Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一个水桶上. 字节:字符:字:管道对01010的封装. java.io.*包中的类.类的分类.Java提供的流的这些类,可以帮你把原始的数据010101转换成字符串.为数据的读取提供了更强大的功能. 程序从文件中读010101的数据. inputStream和outputStream 一个字节是8位.…
解析:Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式.面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和OutputStream的子类.面向字符的操作为以字符为单位对数据进行操作,在读的时候将二进制数据转为字符,在写的时候将字符转为二进制数据,这些类都是Reader和Writer的子类. 总结:以InputStream(输入)/OutputStream(输出)为后缀的是字节流: 以Reader(输入)/Wr…
IO编程 IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口.从磁盘读取文件到内存,就只有Input操作,反过来,把数据写到磁盘文件里,就只是一个Output操作. 由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,就存在速度严重不匹配的问题.举个例子来说,比如要把100M的数据写入磁盘,CPU输出100M的数据只需要0.01秒,可是磁盘要接收这10…
在执行IO操作我们通常会设置一个字节数组作为缓冲区用来写/读数据,一般情况下一个合理大小的缓冲区是有利于提升性能的,但是有一个问题一直困扰着我,为什么缓冲区可以提升IO操作的性能? 经查阅资料之后,总结如下原因: 1.如今处理器和硬件都是支持按块读取数据,读取数据的次数少了性能自然也就提升了 2.一整块的内存操作和拷贝一个字节速度差异几乎可以忽略不记 3.缓冲区的根本目的是为了平衡CPU与外设之间的速度差异…
目录 简介 创建文件的时候指定合适的权限 注意检查文件操作的返回值 删除使用过后的临时文件 释放不再被使用的资源 注意Buffer的安全性 注意 Process 的标准输入输出 InputStream.read() 和 Reader.read() write() 方法不要超出范围 注意带数组的read的使用 little-endian和big-endian的问题 简介 对于文件的IO操作应该是我们经常会使用到的,因为文件的复杂性,我们在使用File操作的时候也有很多需要注意的地方,下面我一起来看…
前言: java中IO里的一些知识对于一个java新手来说,是比较难理解的.因为里面存在一些很绕的概念,比如: 1.到底是读入写出,还是读出写入: 2.我要将一个文件的内容拷贝到另一个文件是先用InputStream还是OutputStream: 3.什么时候用FileInputStream,什么时候用ByteArrayInputStream,什么时候又用StreamBufferInputStream: 要印象深刻的解决这些问题,还是那句话,得从理解出发. 正题: 对于IO的基础知识模型,分类,…