- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java常用基本类库汇总课件.ppt
Reader、Writer (文本内容) 直接用InputStream/OutputStream(字节流)进行文本文件的读写会比较麻烦,因为要考虑文件的编码、中文字符等的问题。 在a.txt中写入“你a好呀”,然后使用一个长度为4个byte去读,就会出现半个汉字的问题。 Reader、Writer是用来读写字符流(character stream)的类,会帮着自动处理麻烦的问题。Reader、Writer是抽象类,有很多子类,最常用的就是InputStreamReader、OutputStreamWriter,用来基于InputStream/OutputStream进行读写。 演示:使用InputStreamReader进行读(备注)。 InputStreamReader的伪代码解释原理。 演示:使用OutputStreamWriter进行写。 编码 由于历史原因,汉字等如何在计算机中以字节存储存在着多种标准,最常见的是GB2312(国家标准,表示汉字)、GBK(GB2312的扩展,还能表示繁体字等)、UTF-8(国际标准)、UTF-16等。 举例:百度首页是采用UTF-8存储,点右键修改为GBK编码就会乱码;首页是采用GBK存储,修改为UTF-8也会乱码。再比如记事本保存文件的时候也可以选择编码:ANSI表示采用当前操作系统的默认编码,如果是中文Windows,默认就是GBK。 用什么编码保存就用什么编码读取,就不会乱码! 如何用其他编码保存?由OutputStreamWriter 构造函数决定(为什么?)new OutputStreamWriter(outStream,UTF-8)。怎么初步判断用什么编码,记事本“另存为”。 读取的编码由InputStreamReader构造函数决定。 Buffered 直接使用InputStreamReader、OutputStreamWriter进行读写仍然是逐字符的进行,可以用Reader、Writer的另外子类BufferedReader、BufferedWriter配合读写,好处: 不是一个字符一个字符的读写,而是用缓冲区,效率更高;it is advisable to wrap a BufferedWriter around any Writer whose write() operations may be costly 方便逐行处理:readLine、newLine 警告:后面讲的会比较复杂,一堆类套来套去。但是这是“多态、设计模式”一个非常经典的案例。 BufferedWriter BufferedWriter buffWriter = null; OutputStreamWriter streamWriter = null; OutputStream outStream = null; outStream = new FileOutputStream(d:\\1.txt); streamWriter = new OutputStreamWriter(outStream); buffWriter = new BufferedWriter(streamWriter); buffWriter.write(我爱你中国!); buffWriter.newLine();//windows下换行符\r\n,linux下是\n buffWriter.write(I love you 中国!); buffWriter.newLine(); buffWriter.write(thank you!); 首先得到OutputStream 这个原始字节流,再使用OutputStream 创建逐char读取写入的字符流写入器OutputStreamWriter ,再使用能批量写入字符串的BufferedWriter 注意关闭顺序的问题 注意关闭的顺序:如果 先关闭Stream,那么Writer就可能还没有把缓冲的数据写入,那只能强制writer.flush 应该先关闭Writer(关闭之前把没有写入的自动flush写入)这样就不用手动flush,Stream关闭之后就写入不了东西了 先关闭依赖的、再关闭被依赖的:BufferedWriter→OutputStreamWriter→OutputStream。 BufferedReader BufferedReader buffReader = null; InputStreamReader streamReader = null; InputStream inStream = null; inStream = new FileInputStream(d:\\1.txt); streamReader = new InputStrea
您可能关注的文档
- Ebola virus disease(EVD)埃博拉出血热诊疗方案(2014年第...课件.ppt
- Emergency Risk Communication Principles and Applied ...课件.ppt
- Faculty of Dentistry, The University of Hong KongFaculty of ...课件.ppt
- Financial Institution in Hong Kong - Insurance IndustryUnder ...课件.ppt
- GENOVATE BIOTECHNOLOGY CO., LTD.健亚生物科技股份...课件.ppt
- H1N1新型流感(简称新流感)(俗称猪流感)课件.ppt
- Hold住童真年华课件.ppt
- ICP-MS(电感耦合等离子体-质谱)基本原理课件.ppt
- if引导的条件状语从句课件资料课件.ppt
- ISO 14001改版说明课件.ppt
最近下载
- JTT1218.5-2024 城市轨道交通运营设备维修与更新技术规范第5部分通信.pdf
- 新时代义务教育学校质量提升三年行动计划 .pdf VIP
- 2024年海南省中考英语真题卷(含答案与解析)_4316.pdf VIP
- 《椒个朋友》幼儿园小班讲课PPT课件.pptx VIP
- 交警12123培训ppt课件.pptx VIP
- 构建新发展格局把握未来发展主动权PPT深刻认识战略意义找准重点系统布局PPT课件(带内容).pptx VIP
- 《扬州历史》考点梳理解读.pdf
- 作业11:《小型网络安装与调试》工学一体化课程教学进度计划表.pdf VIP
- 预测之书(识别版)_601-608.pdf VIP
- 沪电股份:首次公开发行股票招股说明书.docx
文档评论(0)