Java学习笔记之——IO
一. IO
IO读写
流分类:
按照方向:输入流(读),输出流(写)
按照数据单位:字节流(传输时以字节为单位),字符流(传输时以字符为单位)
按照功能:节点流,过滤流
四个抽象类:
InputStream:输入字节流
OutputStream:输出字节流
Reader:输入字符流
Write:输出字符流
1. 第一组流:文件的读写流
FileInputStream VS FileReader

(1)字节流
FileInputSream:字节输入流
常用方法:
|
int |
read() 从该输入流读取一个字节的数据。 如果当前位置没有则返回-1 |
|
int |
read(byte[] b) 从该输入流读取最多 b.length个字节的数据为字节数组。 |
|
int |
read(byte[] b, int off, int len) off:开始读的位置,len:读的长度 从该输入流读取最多 len字节的数据为字节数组。 |
|
void |
close() 关闭此文件输入流并释放与流相关联的任何系统资源。 |
作用:
以字节为单位从文件中把数据读到程序中
使用步骤:
a.创建流对象

b.读数据,read,重点

c.释放资源,close()

注意:1.在文件中,通常一个字母占用1个字节,一个汉子至少占用2个字节,具体根编码有关。
2.从非内存中读取数据要比从内存中读取要慢很多,效率不高
可以一次读取多个来提高效率
FileOutputStream:字节输出流
常用方法:
|
void |
write(int b) 将指定的字节写入此文件输出流。 |
|
void |
write(byte[] b, int off, int len) 将 len字节从位于偏移量 off的指定字节数组写入此文件输出流。 |
|
void |
write(byte[] b) 将 b.length个字节从指定的字节数组写入此文件输出流。 |
|
void |
close() 关闭此文件输出流并释放与此流相关联的任何系统资源。 |
作用:
以字节为单位从程序中把数据写入到文件中
使用步骤:
a.创建流对象
b.写数据,write
c.关闭

(2)字符流
FileReader:输入字符流

FileWrite:输出字符流
========================================================
(3)可读可写字节流
RandomAccessFile
1. 缓冲流
2. 字符流(高级流)
(1)
(2)
4.对象流
序列化
反序列化
5.字符缓冲流
笔记做的不全,这位大神做的很全 https://www.cnblogs.com/caixiaohua/p/6737808.html
Java学习笔记之——IO的更多相关文章
- java学习笔记之IO编程—内存流、管道流、随机流
1.内存操作流 之前学习的IO操作输入和输出都是从文件中来的,当然,也可以将输入和输出的位置设置在内存上,这就需要用到内存操作流,java提供两类内存操作流 字节内存操作流:ByteArrayOutp ...
- 【原】Java学习笔记033 - IO
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:继承关系中爷 ...
- Java学习笔记-10.io流
1.输入流,只能从中读取数据,而不能向其写出数据.输出流,只能想起写入字节数据,而不能从中读取. 2.InputStream的类型有: ByteArrayInputStream 包含一个内存缓冲区,字 ...
- java学习笔记之IO编程—字节流和字符流
1. 流的基本概念 在java.io包里面File类是唯一一个与文件本身有关的程序处理类,但是File只能够操作文件本身而不能操作文件的内容,或者说在实际的开发之中IO操作的核心意义在于:输入与输出操 ...
- java学习笔记之IO编程—对象序列化
对象序列化就是将内存中保存的对象以二进制数据流的形式进行处理,可以实现对象的保存或网络传输. 并不是所有的对象都可以被序列化,如果要序列化的对象,那么对象所在的类一定要实现java.io.Serial ...
- java学习笔记之IO编程—打印流和BufferedReader
1.打印流(PrintWriter) 想要通过程序实现内容输出,其核心一定是要依靠OutputStream类,但是OutputStream类有一个最大缺点,就是这个类中的输出操作功能有限,所有的数据一 ...
- java学习笔记之IO编程—目录和文件的拷贝
进行文件或目录的拷贝时,要先判断处理对象是文件还是目录,如果是文件则直接拷贝,如果是目录还需要拷贝它的子目录及其文件,这就需要递归处理了 import java.io.*; class FileUti ...
- java学习笔记之IO编程—File文件操作类
1. File类说明 在Java语言里面提供有对于文件操作系统操作的支持,而这个支持就在java.io.File类中进行了定义,也就是说在整个java.io包里面,File类是唯一一个与文件本身操作( ...
- Java学习笔记--文件IO
简介 对于任何程序设计语言,输入和输出(Input\Output)都是系统非常核心的功能,程序运行需要数据,而数据的获取往往需要跟外部系统进行通信,外部系统可能是文件.数据库.其他程序.网络.IO设备 ...
随机推荐
- Live2D插件--漂浮的二次元小姐姐
这个插件找了很久,都没找到,今天偶然翻到一个小哥的博客发现了这个,果断偷走. 教程转自简书:https://www.jianshu.com/p/1cedcf183633 还有这些,你可能有用 修改位置 ...
- TCSL:遇到网络正常,但是添加网口打印机总是失效的问题。
1. 环境 这家店要换成TCSL餐饮系统,但是店主希望在换系统时候,保持原来系统正常运转.所以,一开始踩点和实施都是小心翼翼~~ 不过,还是遇到问题,没法打印,如果开启TCSL打印服务,就会和原来的餐 ...
- 最新版Navicat Premium12 中文破解版 安装激活
对于PHPer 来说 Navicat Premium 简直就是神器有木有,反正我是这样觉得的,昨天刚更新了最新版本 Navicat Premium 12 ,官网是免费试用14 天的,肿么能行呢,我们 ...
- 使用cAdvisor+Influxdb+Grafana监控系统
今天准备开始研究研究当前非常流行的Grafana+Influxdb监控系统,两者都是非常轻量级的应用但是功能却异常强大,可以说Grafana在作图显示方面真的毫不逊色与Cacti. 组件介绍 cA ...
- Echarts自定义tootips
由于业务需求,现在要自定义tootips; 设计稿如下: 代码如下: app.title = '坐标轴刻度与标签对齐'; var str1 = "top:-20px;border:0px s ...
- python 抓取糗事百科糗图
1 首先看下要抓取的页面 这是糗事百科里面的糗图页面,每一页里面有很多的图片,我们要做的就是把这些图片抓取下来. 2 分析网页源代码 发现源代码里面的每张图是这样储存的,所以决定使用正则匹配出图片的u ...
- spring boot - 整合jpa多对对关系保存和查询示例
pojo: package com.example.zs.springDataJpa; import org.hibernate.annotations.Proxy; import javax.per ...
- .NET Core实战项目之CMS 第十六章 用户登录及验证码功能实现
前面为了方便我们只是简单实现了基本业务功能的增删改查,但是登录功能还没有实现,而登录又是系统所必须的,得益于 ASP.NET Core的可扩展性因此我们很容易实现我们的登录功能.今天我将带着大家一起来 ...
- asp.net core系列 24 EF模型配置(主键,生成值,最大长度,并发标记)
一.主键 键用作每个实体实例的主要唯一标识符. 使用关系数据库时,这会映射到主键的概念. 还可以配置不是主键的唯一标识符.按照约定,名为 Id 或 <type name>Id 的属性会配置 ...
- Android--MP3播放器MediaPlayer
前言 Android提供了常见的音频.视频的编码.解码机制.借助于多媒体类MediaPlayer的支持,开发人员可以很方便在在应用中播放音频.视频.本篇博客主要讲解在Android平台下如何播放一个音 ...