Java 学习(25)---(IO流之数据流 / 内存操作流 / 打印流 / 标准输入输出流)

简介: 数据流可以读写基本数据类型的数据数据输入流: DataInputStreamDataInputStream(InputStream in)数据输出流: DataOutputStreamDataOutpu...

数据流

可以读写基本数据类型的数据

数据输入流: DataInputStream

DataInputStream(InputStream in)

数据输出流: DataOutputStream

DataOutputStream(OutputStream out)

privatestaticvoid	read()	throws	IOException {
// DataInputStream(InputStream in)
//	创建数据输入流对象
DataInputStream dis =	newDataInputStream( new FileInputStream("dos.txt"));
//	读数据
byte	b = dis.readByte(); short s = dis.readShort(); int i = dis.readInt();
long	l = dis.readLong(); float	f = dis.readFloat();
double	d = dis.readDouble();
char	c = dis.readChar();
boolean	bb = dis.readBoolean();
//	释放资源
dis.close();
}
privatestaticvoid	write()	throws IOException {
// DataOutputStream(OutputStream out)
//	创建数据输出流对象
DataOutputStream dos = new DataOutputStream(new FileOutputStream( "dos.txt"	));

//	写数据了
dos.writeByte(10);

dos.writeShort(100); dos.writeInt(1000); dos.writeLong(10000); dos.writeFloat(12.34F); dos.writeDouble(12.56); dos.writeChar('a'); dos.writeBoolean(true);
//	释放资源
dos.close();
}

内存操作流

用于处理临时存储信息的,程序结束,数据就从内存中消失。

字节数组:ByteArrayInputStream    ByteArrayOutputStream

字符数组:CharArrayReader      CharArrayWriter

字符串:StringReader      StringWriter

// ByteArrayOutputStream()
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//	写数据
for	(  int	x = 0; x < 10; x++) {
baos.write(("hello"	+x ).getBytes());
}
//	释放资源
//	通过查看源码我们知道这里什么都没做,所以根本不需要	close()
// baos.close();

// public byte[] toByteArray()
byte  []bys = baos.toByteArray();

//	读数据
// ByteArrayInputStream(byte[] buf)
ByteArrayInputStream bais = new ByteArrayInputStream(bys);
int	by = 0;
while((by = bais.read()) != -1) {
System.	out .print((char)	by );
}
// bais.close();

 打印流

(1)字节打印流,字符打印流

(2)特点:

A:只操作目的地 ,不操作数据源

B:可以操作任意类型的数据

C:如果启用了自动刷新,在调用  println()  方法的时候,能够换行并刷新

D:可以直接操作文件

问题:哪些流可以直接操作文件呢 ?

看 API,如果其构造方法能够同时接收 File 和 String 类型的参数,一般都是可以直接操作文件的

(3)案例:复制文本文件

BufferedReader br  = new BufferedReader(new FileReader("a.txt"));

PrintWriter pw = new PrintWriter(new FileWriter("b.txt"),true);

String line = null ;

while ((line=br.readLine())!=null ) {

pw.println(line );

}

pw.close();

br.close();

标准输入输出流 ( 理解即可 )

System 类下面有这样的两个字段:in 标准输入流 / out 标准输出流

(2)三种键盘录入方式

A:main 方法的 args 接收参数

B:System.in 通过 BufferedReader 进行包装

    BufferedReader br = new BufferedReader(new

    InputStreamReader(System.in));

C:Scanner

Scanner sc = new Scanner(System.in);

(3)输出语句的原理和如何使用字符流输出数据

A:原理    System.out.println("helloworld"); PrintStream ps = System.out; ps.println("helloworld");

B:把 System.out 用字符缓冲流包装一下使用

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

​​​​​​

目录
相关文章
|
2月前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
97 43
Java学习十六—掌握注解:让编程更简单
|
21天前
|
Java
java 中 IO 流
Java中的IO流是用于处理输入输出操作的机制,主要包括字节流和字符流两大类。字节流以8位字节为单位处理数据,如FileInputStream和FileOutputStream;字符流以16位Unicode字符为单位,如FileReader和FileWriter。这些流提供了读写文件、网络传输等基本功能。
40 9
|
1月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
2月前
|
存储 SQL 小程序
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
这篇文章详细介绍了Java虚拟机(JVM)的运行时数据区域和JVM指令集,包括程序计数器、虚拟机栈、本地方法栈、直接内存、方法区和堆,以及栈帧的组成部分和执行流程。
39 2
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
|
1月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
2月前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
57 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
2月前
|
Java
Java 中 IO 流的分类详解
【10月更文挑战第10天】不同类型的 IO 流具有不同的特点和适用场景,我们可以根据具体的需求选择合适的流来进行数据的输入和输出操作。在实际应用中,还可以通过组合使用多种流来实现更复杂的功能。
62 0
|
2月前
|
存储 算法 Java
带你学习java的数组军队列
带你学习java的数组军队列
37 0
|
2月前
|
Java 大数据 开发工具
java学习——环境准备(1)
java学习——环境准备(1)
42 0
|
7月前
|
存储 Java
【JAVA学习之路 | 进阶篇】Map接口及其实现类及常用方法
【JAVA学习之路 | 进阶篇】Map接口及其实现类及常用方法