当前位置: 首页 > wzjs >正文

关于网站集约化建设的意见yandex网站推广

关于网站集约化建设的意见,yandex网站推广,网站空间的配置,个人网站 域名字符流 文章目录 字符流Reader(字符输入流)Writer(字符输出流) 文章来自Java Guide 用于学习如有侵权,立即删除 不管是文件读写还是网络发送接收,信息的最小存储单元都是字节。 那为什么 I/O 流操作要分为字…

字符流

文章目录

    • 字符流
      • Reader(字符输入流)
      • Writer(字符输出流)

文章来自Java Guide 用于学习如有侵权,立即删除

不管是文件读写还是网络发送接收,信息的最小存储单元都是字节。 那为什么 I/O 流操作要分为字节流操作和字符流操作呢?

个人认为主要有两点原因:

  • 字符流是由 Java 虚拟机将字节转换得到的,这个过程还算是比较耗时。
  • 如果我们不知道编码类型就很容易出现乱码问题。

乱码问题这个很容易就可以复现,我们只需要将上面提到的 FileInputStream 代码示例中的 input.txt 文件内容改为中文即可,原代码不需要改动。

输出:

Number of remaining bytes:9
The actual number of bytes skipped:2
The content read from file:§å®¶å¥½

可以很明显地看到读取出来的内容已经变成了乱码。

因此,I/O 流就干脆提供了一个直接操作字符的接口,方便我们平时对字符进行流操作。如果音频文件、图片等媒体文件用字节流比较好,如果涉及到字符的话使用字符流比较好。

字符流默认采用的是 Unicode 编码,我们可以通过构造方法自定义编码。顺便分享一下之前遇到的笔试题:常用字符编码所占字节数?utf8 :英文占 1 字节,中文占 3 字节,unicode:任何字符都占 2 个字节,gbk:英文占 1 字节,中文占 2 字节。

Reader(字符输入流)

Reader用于从源头(通常是文件)读取数据(字符信息)到内存中,java.io.Reader抽象类是所有字符输入流的父类。

Reader 用于读取文本, InputStream 用于读取原始字节。

Reader 常用方法:

  • read() : 从输入流读取一个字符。
  • read(char[] cbuf) : 从输入流中读取一些字符,并将它们存储到字符数组 cbuf中,等价于 read(cbuf, 0, cbuf.length)
  • read(char[] cbuf, int off, int len):在read(char[] cbuf) 方法的基础上增加了 off 参数(偏移量)和 len 参数(要读取的最大字符数)。
  • skip(long n):忽略输入流中的 n 个字符 ,返回实际忽略的字符数。
  • close() : 关闭输入流并释放相关的系统资源。

InputStreamReader 是字节流转换为字符流的桥梁,其子类 FileReader 是基于该基础上的封装,可以直接操作字符文件。

// 字节流转换为字符流的桥梁
public class InputStreamReader extends Reader {
}
// 用于读取字符文件
public class FileReader extends InputStreamReader {
}

FileReader 代码示例:

try (FileReader fileReader = new FileReader("input.txt");) {int content;long skip = fileReader.skip(3);System.out.println("The actual number of bytes skipped:" + skip);System.out.print("The content read from file:");while ((content = fileReader.read()) != -1) {System.out.print((char) content);}
} catch (IOException e) {e.printStackTrace();
}

input.txt 文件内容:

输出:

The actual number of bytes skipped:3
The content read from file:我是Guide。

Writer(字符输出流)

Writer用于将数据(字符信息)写入到目的地(通常是文件),java.io.Writer抽象类是所有字符输出流的父类。

Writer 常用方法:

  • write(int c) : 写入单个字符。
  • write(char[] cbuf):写入字符数组 cbuf,等价于write(cbuf, 0, cbuf.length)
  • write(char[] cbuf, int off, int len):在write(char[] cbuf) 方法的基础上增加了 off 参数(偏移量)和 len 参数(要读取的最大字符数)。
  • write(String str):写入字符串,等价于 write(str, 0, str.length())
  • write(String str, int off, int len):在write(String str) 方法的基础上增加了 off 参数(偏移量)和 len 参数(要读取的最大字符数)。
  • append(CharSequence csq):将指定的字符序列附加到指定的 Writer 对象并返回该 Writer 对象。
  • append(char c):将指定的字符附加到指定的 Writer 对象并返回该 Writer 对象。
  • flush():刷新此输出流并强制写出所有缓冲的输出字符。
  • close():关闭输出流释放相关的系统资源。

OutputStreamWriter 是字符流转换为字节流的桥梁,其子类 FileWriter 是基于该基础上的封装,可以直接将字符写入到文件。

// 字符流转换为字节流的桥梁
public class OutputStreamWriter extends Writer {
}
// 用于写入字符到文件
public class FileWriter extends OutputStreamWriter {
}

FileWriter 代码示例:

try (Writer output = new FileWriter("output.txt")) {output.write("你好,我是Guide。");
} catch (IOException e) {e.printStackTrace();
}

输出结果:

大家好,我是xwhking,一名技术爱好者,目前正在全力学习 Java,前端也会一点,如果你有任何疑问请你评论,或者可以加我QQ(2837468248)说明来意!希望能够与你共同进步

http://www.dtcms.com/wzjs/554537.html

相关文章:

  • 龙岗网站建设公司网络服务智慧团建电脑登录入口官网
  • 国内搜索网站小米公司的企业文化建设
  • 网站发布与推广方式网站建设的知识和技能
  • 网站后台不能上传wordpress自动修改图
  • 合肥建设网站制作哪个好成都住房和城乡建设厅网站
  • 建一个营销网站的步骤安全的网站制作公司
  • 广东融都建设有限公司 公司网站wordpress 有支付接口
  • 福州中小企业网站制作百度号码认证平台官网首页
  • 如何看网站是否被降权怎么制作微信表情包
  • 网站建设与设计ppt模板下载公司网站设计教程
  • 网站制作维护费 归属女生做网站后期维护工作好吗
  • 泰国如何做网站推广模板网站如何引擎收录
  • 百度推广进入后是别的网站 说是服务器问题杭州临安网站建设
  • 怎么根据别人的网站做自己的网站jsp网站开发模式
  • 新网站开发wordpress数据库修改域名
  • 设计素材网站排行榜做二手钢结构网站有哪些
  • 濮阳网站建设哪里便宜个人站长做网站
  • 凡科免费网站建设wordpress 音乐播放器插件
  • 手机工信部网站备案查询数据分析网站html模板下载
  • 百度不收录网站关键词把wordpress改成返利网
  • 网站在哪里设置关键字工信部网站备案平台
  • 写作的网站有哪些wordpress主题教程视频
  • 网站开发与运营方向关键词优化好
  • 制作网站管理系统莒南做网站
  • 网站开发工作方案济宁公司做网站
  • 网站兼职做计划赚小钱wordpress 修改教程
  • 网站作业免费下载莱芜金点子今天最新招聘电子版
  • 杭州网站建设第一品牌wordpress翻译升级失败
  • 达州网站开发海南四定网站开发
  • 用dw做网站时怎么添加弹窗国内免费域名申请