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

用php做的网站有北京seowyhseo

用php做的网站有,北京seowyhseo,设计工作室简介怎么写,注册网站查询系统1. 什么是流 Java中的流是对字节序列的抽象#xff0c;我们可以想象有一个水管#xff0c;只不过现在流动在水管中的不再是水#xff0c;而是字节序列。和水流一样#xff0c;Java中的流也具有一个“流动的方向”#xff0c;通常可以从中读入一个字节序列的对象被称为输入…1. 什么是流     Java中的流是对字节序列的抽象我们可以想象有一个水管只不过现在流动在水管中的不再是水而是字节序列。和水流一样Java中的流也具有一个“流动的方向”通常可以从中读入一个字节序列的对象被称为输入流能够向其写入一个字节序列的对象被称为输出流。   2. 字节流     Java中的字节流处理的最基本单位为单个字节它通常用来处理二进制数据。Java中最基本的两个字节流类是InputStream和OutputStream它们分别代表了组基本的输入字节流和输出字节流。InputStream类与OutputStream类均为抽象类我们在实际使用中通常使用Java类库中提供的它们的一系列子类。下面我们以InputStream类为例来介绍下Java中的字节流。     InputStream类中定义了一个基本的用于从字节流中读取字节的方法read这个方法的定义如下 public abstract int read() throws IOException;     这是一个抽象方法也就是说任何派生自InputStream的输入字节流类都需要实现这一方法这一方法的功能是从字节流中读取一个字节若到了末尾则返回-1否则返回读入的字节。关于这个方法我们需要注意的是它会一直阻塞知道返回一个读取到的字节或是-1。另外字节流在默认情况下是不支持缓存的这意味着每调用一次read方法都会请求操作系统来读取一个字节这往往会伴随着一次磁盘IO因此效率会比较低。有的小伙伴可能认为InputStream类中read的以字节数组为参数的重载方法能够一次读入多个字节而不用频繁的进行磁盘IO。那么究竟是不是这样呢我们来看一下这个方法的源码 public int read(byte b[]) throws IOException {return read(b, 0, b.length); }     它调用了另一个版本的read重载方法那我们就接着往下追 public int read(byte b[], int off, int len) throws IOException { if (b null) { throw new NullPointerException(); } else if (off 0 || len 0 || len b.length - off) { throw new IndexOutOfBoundsException(); } else if (len 0) { return 0; } int c read(); if (c -1) { return -1; } b[off] (byte)c; int i 1; try { for (; i len ; i) { c read(); if (c -1) { break; } b[off i] (byte)c; } } catch (IOException ee) { } return i; }     从以上的代码我们可以看到实际上read(byte[])方法内部也是通过循环调用read()方法来实现“一次”读入一个字节数组的因此本质来说这个方法也未使用内存缓冲区。要使用内存缓冲区以提高读取的效率我们应该使用BufferedInputStream。   3. 字符流     Java中的字符流处理的最基本的单元是Unicode码元大小2字节它通常用来处理文本数据。所谓Unicode码元也就是一个Unicode代码单元范围是0x0000~0xFFFF。在以上范围内的每个数字都与一个字符相对应Java中的String类型默认就把字符以Unicode规则编码而后存储在内存中。然而与存储在内存中不同存储在磁盘上的数据通常有着各种各样的编码方式。使用不同的编码方式相同的字符会有不同的二进制表示。实际上字符流是这样工作的 输出字符流把要写入文件的字符序列实际上是Unicode码元序列转为指定编码方式下的字节序列然后再写入到文件中输入字符流把要读取的字节序列按指定编码方式解码为相应字符序列实际上是Unicode码元序列从从而可以存在内存中。    我们通过一个demo来加深对这一过程的理解示例代码如下 import java.io.FileWriter; import java.io.IOException;public class FileWriterDemo { public static void main(String[] args) { FileWriter fileWriter null; try { try { fileWriter new FileWriter(demo.txt); fileWriter.write(demo); } finally { fileWriter.close(); } } catch (IOException e) { e.printStackTrace(); } } }       以上代码中我们使用FileWriter向demo.txt中写入了“demo”这四个字符我们用十六进制编辑器WinHex查看下demo.txt的内容     从上图可以看出我们写入的“demo”被编码为了“64 65 6D 6F”但是我们并没有在上面的代码中显式指定编码方式实际上在我们没有指定时使用的是操作系统的默认字符编码方式来对我们要写入的字符进行编码。     由于字符流在输出前实际上是要完成Unicode码元序列到相应编码方式的字节序列的转换所以它会使用内存缓冲区来存放转换后得到的字节序列等待都转换完毕再一同写入磁盘文件中。    4. 字符流与字节流的区别     经过以上的描述我们可以知道字节流与字符流之间主要的区别体现在以下几个方面 字节流操作的基本单元为字节字符流操作的基本单元为Unicode码元。字节流默认不使用缓冲区字符流使用缓冲区。字节流通常用于处理二进制数据实际上它可以处理任意类型的数据但它不支持直接写入或读取Unicode码元字符流通常处理文本数据它支持写入及读取Unicode码元。转载于:https://www.cnblogs.com/WuXuanKun/p/5578394.html
http://www.pierceye.com/news/988270/

相关文章:

  • 北京网站制作设计wordpress seo 介绍
  • 手机网站搭建平台怎么查网站域名备案
  • 用文件传输协议登录网站网站开发设计手册
  • 有什么兼职做it的网站网络推广怎么做才有效
  • 网站后台开发教程沈阳网站制作流程
  • 可以自己做课程的网站深圳小型网站建设
  • 静安做网站公司网站上线的通知
  • 怎么建设电影网站wordpress 附件上传插件下载
  • 网站导航内链建设企业网站设计方式有哪些
  • 手表网站建站千秋网络是家西安做网站的公司
  • 济南企业网站百度seo优化是做什么的
  • 网站颜色搭配案例wordpress洛米主题
  • 网站几个关键词网站备案为什么要关闭
  • 深圳网站制作哪家便宜怎么利用百度云盘做网站
  • 美容培训东莞网站建设做的网站上更改内容改怎么回事
  • 绵阳新农网的网站是哪个公司做的wordpress 在线教育主题
  • 大连优化网站怎样制作企业的网站
  • 网站建设邀请函北京网站优化 卓立海创
  • 公司后台的网站代理维护更新商贸有限公司注销流程
  • 网站建设工作动态wordpress次元主题
  • 手机网站源码asp网站快速排名技巧
  • 站点怎么建网页宁波网站建设设计制作公司
  • 黑龙江企业网站建设网站模板带后台 下载
  • 徐州在线制作网站营销网络是什么意思
  • 上海网站建设seo公司微信小程序制作教学
  • 信息化工作总结 网站建设十堰市有几家网站公司
  • 宠物网站建站目标做外贸的网站哪些是最好的
  • 垂直型电商网站如何做html5 开发的网站
  • 做网站可以不做后端吗渭南网站建设网站排名优化
  • 在线建站网页制作网站建设平台工商营业执照官网