O流的操作规律
之所以要弄清楚这个规律,是因为流的对象太多,开发时不知道用哪个对象合适。
想要知道开发时用到哪个对象,只要通过四个明确即可。
1.明确源和目的(汇)
源:InputStream Reader
目的:OutputStream Writer
2.明确数据是否是纯文本数据
源:是纯文本 Reader
否 InputStream
目的:是纯文本 Writer
否 OutputStream
到这里就可以明确需求使用哪一个体系了。
3.明确具体的设备
源设备:
硬盘:file
键盘:System.in
内存:数组
网络:Socket
目的设备:
硬盘:file
键盘:System.out
内存:数组
网络:Socket
4.是否需要其他额外功能
1.是否需要高效(缓冲区)
是,就加上buffer。
2.转换。
需求1:复制一个文本文件
1.明确源和目的
源:InputStream Reader
目的:OutputStream Writer
2.是否是纯文本
是,源是Reader,目的是Writer。
3.明确具体设备
源设备 硬盘:file
目的设备 硬盘:file
FileReader fr=new FileReader(“a.txt”);
FileWriter fw=new FileWriter(“copya.txt”);
4.需要额外功能么?
需要高效
BufferedReader bufr=new BufferedReader(new FileReader(“a.txt”));
BufferedWriter bufw=new BufferedWriter(new FileWriter(“copya.txt”));
需求2:读取键盘录入信息,并写入到文本文件中
1.明确源和目的
源:InputStream Reader
目的:OutputStream Writer
2.是否是纯文本
是,源是Reader,目的是Writer。
3.明确具体设备
源设备 键盘:System.in
目的设备 硬盘:file
InputStream in=System.in;
FileWriter fw=new FileWriter(“a.txt”);
4.需要额外功能
需要转换,将字节流转换成字符流,因为明确的源是Reader,这样操作文本数据便捷。
所以将已有的字节流转换成字符流,使用InputStreamReader,
InputStreamReader isr=new InputStreamReader(System.in);
FileWriter fw=new FileWriter(“a.txt”);
还需要高效
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufw=new BufferedWriter(ew FileWriter(“a.txt”));
需求3:将一个文本文件显示在控制台上
1.源和目的:
源:InputStream Reader
目的:OutputStream Writer
2.是否是纯文本
是,源是Reader,目的是Writer。
3.明确具体设备
源设备 硬盘:file
目的设备 硬盘:System.out
FileReader fr=new FileReader(“a.txt”);
OutputStream os=System.out;
4.额外功能
需要转换:
FileReader fr=new FileReader(“a.txt”);
OutputStreamWriter osw=new OutputStreamWriter(new OutputStream(System.out));
需要高效:
BufferedReader bufr=new BufferedReader(new FileReader(“a.txt”));
BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(System.out));
需求4.读取键盘录入数据,显示在控制台上
1.源和目的
源:InputStream Reader
目的:OutputStream Writer
2.是否是纯文本
是,源是Reader,目的是Writer。
3.明确具体设备
源设备 键盘:System.in
目的设备 控制台:System.out
InputStream fr=System.in;
OutputStream os=System.out;
4.额外功能
需要转换
InputStreamReader isr=new InputSreamReader(System.in);
OutputStreamWriter isw=new OutputStreamWriter(System.out);
将其高效
BufferedReader bufr=new BufferedReader(new InputSreamReader(System.in));
BufferedWriter bufw=new BuffereWriter(new OutputStreamWriter(System.out));
文章浏览阅读2.1k次。#coding=utf-8# -*- coding: utf-8 -*-def read_to_write(read_path,write_path,IS_delete_first=False): dataSource = list() import os import sys print(sys.path) with open(read_path, e..._python 一直追加文件
文章浏览阅读1.1k次,点赞17次,收藏19次。主要是对LangChain的基本介绍和LangChain的使用场景描述。_langchain入门指南pdf
文章浏览阅读56次。最近在做一个Java Web带有数据库的项目,用过SQL Server 2005,但是对它印象不太好因为安装的时候出错还恢复了系统,十分伤心,后来打算用MySQL 5.5.27使使看。 由于博客上传图片限制,下面的正文和与之配合的图解在附件word文档中安装环境:Windows 7 家庭普通版 [64bit ]版本信息:MySQL 5.5.27 [下载...
文章浏览阅读8.3k次。相比其他的网络结构,resnet的网络更深,网络更深对于深度学习来说就能学习到更多的东西,效果也更好。但是是不是网络越深,效果就一定更好呢?在论文中,作者提到分别用56层和20层的网络做训练和测试,更深的网络有更高的错误率。出现这种情况不是因为过拟合,而是因为深度学习过程中存在一个重要的问题:梯度爆炸和梯度消失深度残差网络就是为了解决这一个问题,这样一来,模型深度的增加才可以有效地..._残差单元
文章浏览阅读16次。来源:量子位不走Transformer寻常路,魔改RNN的国产新架构RWKV,有了新进展:提出了两种新的RWKV架构,即Eagle(RWKV-5)和Finch(RWKV-6)。这两种序列模型以RWKV-4架构为基础,然后作了改进。新架构的设计进步包括多头矩阵值状态(multi-headed matrix-valued states)和动态递归机制(dynamic recurrence mech..._eagle and finch: rwkv with matrix-valued states and dynamic recurrence
文章浏览阅读557次。2019独角兽企业重金招聘Python工程师标准>>> ..._1n5819hw-7-f
文章浏览阅读31次。BranchCache 是 Windows 7、Windows 8、Windows Server2008R2 和 Windows Server 2012 操作系统的一项功能,此功能可在本地分支机构的计算机上对来自文件和广域网 (WAN) 中 Web 服务器的内容进行缓存。在异地分布式 SharePoint Server 2013 环境中,BranchCache 可通过缓存用户从 SharePo...
文章浏览阅读58次。代理商管理:拥有底层源码系统,发展自己的代理商,列表清晰展示各代理商状态,详细设置对代理商账号信息、创建小程序的个数、系统到期时间等进行管理。消息通知:设置商品状态通知、成团通知、预约预定通知、系统表单通知、会员卡开卡通知等消息模板,配置商家收发消息邮箱实现邮件通知。积分签到、积分兑换商城、拼团、店内点餐、手机客服等插件可用,满足各种行业场景营销需求,助力客户小程序营销推广。无需代码编程,无需技术基础,简单的操作页面,清晰的模块分划,详尽的功能组件,让您短时间即可轻松玩转小程序。_thinkphp内核全行业小程序运营管理系统源码+自由diy布局+一键生成小程序.rar
文章浏览阅读271次。安装首先这货需要在linux下跑,非得用windows就别看了,也不是不能装,费劲且性能渣得有composer,嫌慢的也拉倒吧,别看了,本文不介绍没有composer怎么办安装composer也不是本文要点,在ubuntu(其实为了不折腾QQ我装的是deepin)中就是一行命令php...
文章浏览阅读622次。1.python中小数按科学技术法的形式输出:print("%e" % number)2.int.from_bytes(bytes, bytesorder='big'/'little', signed=False)参数解释:bytes是需要解析的字节;bytesorder是说明要解释的字节中左边是高位还是右边是高位,big左边是高位,little左边是低位;signed表示当前解析的是否是有符号数。int.to_bytes()是int.from_bytes的逆过程,把十进制整数,转换为byt_python 读取二进制转小数
文章浏览阅读1.6k次。c语言中基本数据类型的长度:32位下:char :1个字节(不变)*(指针变量): 4个字节(32位机的寻址空间是4个字节。同理64位编译器)(变化)short int : 2个字节(不变)int: 4个字节(不变)unsigned int : 4个字节(不变)float: 4个字节(不变)double: 8个字节(不变)_在android32和android64位中unsigned long数值有什么不同
文章浏览阅读495次。最近用到了docx生成word文档,docx本身用起来很方便,自带的各种样式都很好看,美中不足的就是对中文的支持不够好。在未设置中文字体的时候,生成的文档虽然可以显示中文,但是笔画大小不一,很难看。解决办法:首先创建一个文档,要先声明一个document:from docx import Documentdocument = Document()docx内置的样式都可以通过document.sty..._python docx normal