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));

​​​​​​

目录
相关文章
|
12天前
|
存储 Java 编译器
Java内存区域详解
Java内存区域详解
27 0
Java内存区域详解
|
22天前
|
缓存 算法 Java
Java内存管理与调优:释放应用潜能的关键
【4月更文挑战第2天】Java内存管理关乎性能与稳定性。理解JVM内存结构,如堆和栈,是优化基础。内存泄漏是常见问题,需谨慎管理对象生命周期,并使用工具如VisualVM检测。有效字符串处理、选择合适数据结构和算法能提升效率。垃圾回收自动回收内存,但策略调整影响性能,如选择不同类型的垃圾回收器。其他优化包括调整堆大小、使用对象池和缓存。掌握这些技巧,开发者能优化应用,提升系统性能。
|
4天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
19天前
|
缓存 安全 Java
Java并发编程进阶:深入理解Java内存模型
【4月更文挑战第6天】Java内存模型(JMM)是多线程编程的关键,定义了线程间共享变量读写的规则,确保数据一致性和可见性。主要包括原子性、可见性和有序性三大特性。Happens-Before原则规定操作顺序,内存屏障和锁则保障这些原则的实施。理解JMM和相关机制对于编写线程安全、高性能的Java并发程序至关重要。
|
1天前
|
Java 程序员 数据库连接
Java从入门到精通:3.3.2性能优化与调优——内存管理篇
Java从入门到精通:3.3.2性能优化与调优——内存管理篇
Java从入门到精通:3.3.2性能优化与调优——内存管理篇
|
1天前
|
存储 安全 Java
滚雪球学Java(19):JavaSE中的内存管理:你所不知道的秘密
【4月更文挑战第8天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
22 4
滚雪球学Java(19):JavaSE中的内存管理:你所不知道的秘密
|
9天前
|
存储 缓存 监控
Java内存管理:垃圾回收与内存泄漏
【4月更文挑战第16天】本文探讨了Java的内存管理机制,重点在于垃圾回收和内存泄漏。垃圾回收通过标记-清除过程回收无用对象,Java提供了多种GC类型,如Serial、Parallel、CMS和G1。内存泄漏导致内存无法释放,常见原因包括静态集合、监听器、内部类、未关闭资源和缓存。内存泄漏影响性能,可能导致应用崩溃。避免内存泄漏的策略包括代码审查、使用分析工具、合理设计和及时释放资源。理解这些原理对开发高性能Java应用至关重要。
|
17天前
|
存储 缓存 安全
【企业级理解】高效并发之Java内存模型
【企业级理解】高效并发之Java内存模型
|
20天前
|
存储 Java
探索 Java IO 流的多种实现方式
【4月更文挑战第4天】Java IO 流是处理输入输出的关键组件,包括文件流(FileInputStream/FileOutputStream)、字符流(FileReader/FileWriter)、缓冲区流(BufferedInputStream/BufferedOutputStream)、转换流(InputStreamReader/OutputStreamWriter)、数据流(DataInputStream/DataOutputStream)、对象流(ObjectInputStream/ObjectOutputStream)、随机访问文件流(RandomAccessFile)和管道流。
|
23天前
|
Java
java中jar启动设置内存大小java -jar 设置堆栈内存大小
java中jar启动设置内存大小java -jar 设置堆栈内存大小
11 1