java中的流

本文总结了Java和Python的IO流相关知识。从方向上分为输入流和输出流,类型上有字符流和字节流,功能上有节点流和处理流。还介绍了不同类型流的特点,如文件流用于文件读写、对象流可处理对象数据等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相对于程序而言

  • 按方向分有:输入流和输出流
  • 按类型分有:字符流(unicode编码一个字符两个字节8位*2如中文)和字节流(一个字符一个字节8位都是英文)所以有存在的必要
  • 按功能分有:节点流(直接套在数据源上)和处理流(套在节点流或处理流上)

按节点流类型分

类型字符流字节流
file类型fileReaderfileInputStream(字节的输入输出)
memory array类型charArrayReaderbyteArrayInputStream
memory String类型StringReader
pipe管道类型pipedReaderPipedInputSream

处理流类型

类型字符流字节流
缓冲流类型bufferedReaderBufferedInputStream
字节到字符序列化转换流类型InputStreamRead
对象流——ObjectObjectInputStream
数据流DataInputStream/DataOutputStream
打印流——PrintPrintWriterPrintStream
Filtering类型filterReaderfilterInputStream
计数LineNumberReaderLineNumberInputStream
peeking aheadPushbackReaderPushbackInputStream

IO流总结

  • 关键点:

  • 文件类型(File)的流是对文件进行读写。

  • 对象类型(Object)的流是将一个对象写到文件里面,或者将一个文件里面的数据按对象形式进行读取(必须实行Serializable 接口)。

  • 缓冲流(Buffered)可以一行一行读和换行的写。

  • 数据类型(Date/ByteArray)的流是可以存取机器无关的java原始数据类型

  • 转换流(InputStreamWriter)可是可以将把OutputStream转换成Writer之后就可以一个字符一个字符地通过管道写入数据了,而且还可以写入字符串。我们如果用一个FileOutputStream流往文件里面写东西,得要一个字节一个字节地写进去,但是如果我们在FileOutputStream流上面套上一个字符转换流,那我们就可以一个字符串一个字符串地写进去。

  • 打印流(print)都是输出流,输出操作不会抛出异常有自动flush功能,println可用于多种数据类型的输出



//对于PrintWriter来说,当启用字段刷新之后, 调用println或者printf或者format方法,便会立马刷新操作(自动刷新).

    public class PrintStreamDemo {
    	public static void main(String[] args) throws Exception {
    		FileOutputStream fos = new FileOutputStream("text/hello.txt");
    		PrintStream ps = new PrintStream(fos);
    		//直接使用PrintStream输出对象,将数据对象写到了文件里面
    		ps.print(new PrintStreamDemo());
    	}
     
    }

转载于:https://my.oschina.net/u/2389884/blog/1934790

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值