Java-输入输出流

java输入输出流

Java语言将程序中数据的输入输出过程看作是一种数据流动的过程
–将提供输入数据的数据源称作输入流input stream
–将输出数据的目的地称作输出流output stream
键盘-输入流
显示器-输出流

  • java程序的输入输出
    –数据源:键盘,硬盘,网络
    –目的地:显示器,硬盘,网络

字节流byte 底层表示
例:
“a” :97,61,01100001
字符流char 对数据进行解释
例:
“abc中国”:61 62 63 d6 d0 b9 fa(ANSI编码-混合编码)

  • Java API 提供一组输入输出流类

Java.io
字节型 输入输出流(根类)
InputStream


java.io.InputStream类说明文档
public abstract class InputStream extends Object implements Closeable

类成员:
InputStream():构造方法
int available():返回字节输入流中可读的字节数
abstract int read():读出一个字节
int read(byte[] b):根据b的长度读出若干个字节存放在b中
int read(byte[] b ,int off,int len):读出len个字节并存放在b中
long skip(long n):跳过n个字节
void close():关闭字节输入流


OutputStream

java.io.OutputStream类说明文档
public abstract class OutputStream extends Object implements Closeable,Flushable

类成员:
OutputStream():构造方法
abstract void write(int b):写入一个字节
void write(byte[] b):写入数组b
void write(byte[] b ,int off,int len):写入数组b中的len个字节
void flush():立即输出缓存里的内容
void close():关闭字节输出流


字节型输入输出流:
System.in--------------------static InputStream
System.out------------------static PrintStream

字符型 输入输出流(根类)
Reader
在这里插入图片描述
Writer
在这里插入图片描述
字节型包装类(将字节流包装成字符流,是继承自抽象类,字符输入输出类,字节输入输出类)
InputStreamReader
在这里插入图片描述
OutputStreamWriter

在这里插入图片描述
关系
在这里插入图片描述

标准IO

键盘输入:数据之间以空格或tab键隔开,用扫描器类进行扫描,格式化输入
扫描器类:Scanner在这里插入图片描述

显示器输出:将不同类型数据统一为字符串,格式化输出
打印流类:PrintStream OutputStream的二级子类
在这里插入图片描述

文件IO

文件类 File

在这里插入图片描述

文本文件

存储字符类型的数据
ASCLL编码,GBK编码
具有换行的格式
通用性强

流继承树:
在这里插入图片描述
FileReader,FileWriter:文本文件读写
BufferedReader,BufferedWriter:带缓冲的字符型输入输出流,对FileReader,FileWriter的包装
PrintWriter:字符型打印流类,文件格式化输出,用法与显示器字节型打印流类printStream一致

二进制文件

直接以内存的二进制存储格式在外存上存储数据
可保存任意类型的数据
通用性差
交换数据需要遵循格式标准:JPEG GIF TIFF等

字节型输入输出流类族
在这里插入图片描述
二进制文件IO类:FileInputStream,FileOutputStream
带缓冲区的字节型输出输出流类:BufferedInputStream,BufferedOutputStream
带反序列化/序列化功能的字节型输入输出流类:
ObjectInputStream
在这里插入图片描述
ObjectOutputStream
在这里插入图片描述

对象序列化

实现 serializable接口

public interface Serializable

标记接口
某些字段不希望被序列化,定义类时为这些字段添加修饰符“transient”,定义成非持久化字段
注:非持久化字段,和静态字段都不参与序列化处理

文本编辑

使用图形界面,用户在文本编辑框(JTextArea)中编辑文本文件,将编辑好的内容保存在文本文件中

文本处理

分词,查找,替换等字符串操作
String:split()

正则表达式
单个字符:
在这里插入图片描述
单词:
在这里插入图片描述
词组:
在这里插入图片描述
句子:
在这里插入图片描述
模式类Pattern:描述比较复杂的分隔符模式,用于文本字符串分词,可以创建下一步词法分析所需的匹配器对象
在这里插入图片描述
匹配器类Matcher
在这里插入图片描述
文本词法处理过程
一:创建模式对象Pattern
二:创建匹配对象Matcher
三:matcher进行分词

图像处理

javax.swing.ImageIcon:不可修改图标类
可以用JLabel来显示图标类图像
在这里插入图片描述
java.awt.image.BufferedImage:可以修改的带缓冲图像类

使用画布类Canvas来显示带缓存的图像,通过重写绘图方法paint()来显示图像
在这里插入图片描述
图像输入输出类javax.imageio.ImageIO
在这里插入图片描述

声音处理

录音:对麦克风输入的声音进行数字化采样,然后将其保存成音频文件

播放:播放音频文件的声音

音频格式:编码算法(PCM或MP3),采样率(8khz或16khz),采样位数,声道数,帧率,每帧字节数等参数

AudioFormat:音频格式类
在这里插入图片描述
音频文件格式:WAVE,AIFF,AU,MP3,WMA等
音频系统:本地计算机的音频系统(AudioSystem)

在这里插入图片描述
数据线:
在这里插入图片描述
TargetDataLine:连接麦克风的数据线
SourceDataLine:连接音箱
Clip:音频片段

音频输入流:AudioInputStream

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Ma.01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值