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

网站如何编辑天津住房和城乡建设建造师网站

网站如何编辑,天津住房和城乡建设建造师网站,做网站代码编辑工具,怎样防止别人利用自己电脑做网站一、流的概念 “对语言设计人员来说#xff0c;创建好的输入#xff0f;输出系统是一项特别困难的任务。” ――《Think in Java》 无论是系统、还是语言的设计中IO的设计都是异常复杂的。面临的最大的挑战一般是如何覆盖所有可能的因素#xff0c;我们不仅仅要考虑文件、…一、流的概念 “对语言设计人员来说创建好的输入输出系统是一项特别困难的任务。” ――《Think in Java》 无论是系统、还是语言的设计中IO的设计都是异常复杂的。面临的最大的挑战一般是如何覆盖所有可能的因素我们不仅仅要考虑文件、控制台、网络、内存等不同的种类而且要处理大量的不同的读取方式如顺序读取、随机读取二进制读取、字符读取按行读取、按字符读取…… 为了解决输入/输出问题创建了Java IO体系并且提出了流的概念。 如何理解流的概念联想一下现实生活中水流自来水公司通过管道将水送入千家万户数据相当于现实生活中的水JAVA中的流相当于现实生活中的管道。在Java中流代表任何有能力产出数据的数据源对象或者是有能力接受数据的接收端对象流的作用是数据传输根据数据传输特性将流抽象为各种类方便更直观的进行数据操作。 ps:当面试问到你对流的理解时可以拿生活中的自来水来做对比或者从面对对象的角度来讨论。 二、Java IO体系 1、基于字节的IO操作 2、基于字符的IO操作 从上图可以看到整个Java IO体系都是基于字节流(InputStream/OutputStream) 和字节流(Reader/Writer)作为基类根据不同的数据载体或功能派生出来的。 3、分类 按照数据单位来分字节流、字符流 按照方向分输入流、输出流 按照功能来分节点流、处理流直接与底层文件资源连接的称为节点流,对节点流进行包装从而完成更高级功能的称为处理流,处理流在构造时须为其指定一个节点流. 三、扩展 下面我们来看一下JDK1.8的源代码 3.1、源代码 3.1.1、InputStream public abstract int read() throws IOException;//从输入流中读取一个字节值0-255并返回子类必须提供此方法的实现如果到达了流的末尾则返回-1public int read(byte b[]) throws IOException {return read(b, 0, b.length);}/*** 实际上还是调用read()方法将读到的内容放到字节数组中b返回-1已读到流的末尾或者实际读取的字节数*/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;}/*** 跳过n个字节实际上还是调用read()方法所以read()方法很关键返回实际跳过的字节数*/public long skip(long n) throws IOException {long remaining n;int nr;if (n 0) {return 0;}int size (int)Math.min(MAX_SKIP_BUFFER_SIZE, remaining);byte[] skipBuffer new byte[size];while (remaining 0) {nr read(skipBuffer, 0, (int)Math.min(size, remaining));if (nr 0) {break;}remaining - nr;}return n - remaining;} 上面的源码和注释分析了read方法和skip的作用。 3.1.2、OutputStream public abstract void write(int b) throws IOException;//将指定字节写入输出流只会写入低8位高的24位会被忽略因为一个字节只有8个bit位public void write(byte b[]) throws IOException {write(b, 0, b.length);}public void write(byte b[], int off, int len) throws IOException {if (b null) {throw new NullPointerException();} else if ((off 0) || (off b.length) || (len 0) ||((off len) b.length) || ((off len) 0)) {throw new IndexOutOfBoundsException();} else if (len 0) {return;}for (int i 0 ; i len ; i) {write(b[off i]);}} 3.1.3、Reader abstract public int read(char cbuf[], int off, int len) throws IOException;//将字符读入数组此方法可能会发生阻塞返回-1或者读入的字符数public int read(char cbuf[]) throws IOException {return read(cbuf, 0, cbuf.length);}/*** 将字符读入字符缓冲区*/public int read(java.nio.CharBuffer target) throws IOException {int len target.remaining();char[] cbuf new char[len];int n read(cbuf, 0, len);if (n 0)target.put(cbuf, 0, n);return n;}/*** 读取单个字符*/public int read() throws IOException {char cb[] new char[1];if (read(cb, 0, 1) -1)return -1;elsereturn cb[0];}3.1.4、Writer abstract public void write(char cbuf[], int off, int len) throws IOException;//将字符数组的一部分写入到输出流/*** 将指定字符写入到输出流*/public void write(int c) throws IOException {synchronized (lock) {if (writeBuffer null){writeBuffer new char[WRITE_BUFFER_SIZE];}writeBuffer[0] (char) c;write(writeBuffer, 0, 1);}}/*** 将字符数组的所有内容写入到输出流*/public void write(char cbuf[]) throws IOException {write(cbuf, 0, cbuf.length);}/*** 将字符串的所有内容写入到输出流*/public void write(String str) throws IOException {write(str, 0, str.length());}/*** 将字符串的部分内容写入到输出流*/public void write(String str, int off, int len) throws IOException {synchronized (lock) {char cbuf[];if (len WRITE_BUFFER_SIZE) {if (writeBuffer null) {writeBuffer new char[WRITE_BUFFER_SIZE];}cbuf writeBuffer;} else { // Dont permanently allocate very large buffers.cbuf new char[len];}str.getChars(off, (off len), cbuf, 0);write(cbuf, 0, len);}} 3.2、NIO 对IO的概念有基本的了解之后我们再来了解一下JAVA中类似的概念NIO。由于本文主要介绍IO的概念所以对NIO的介绍会很浅显后面会有专门的文章来介绍NIO。 NIO( New Input/ Output)一种同步非阻塞的IO模型。同步是指线程不断轮询IO事件是否就绪非阻塞是指线程在等待IO的时候可以继续其他任务。同步的核心是SelectorSelector替代了线程本身去轮询IO事件避免了阻塞的同时也减少了不必要的线程消耗非阻塞的核心是通道和缓冲区当IO事件就绪时可以通过写到缓冲区保证IO的成功而无需线程阻塞式的等待。 NIO和IO的主要区别 IONIO面向流面向缓冲阻塞IO非阻塞IO无选择器 关于通道、缓冲区和选择器的实现参考https://blog.csdn.net/forezp/article/details/88414741 参考 https://blog.csdn.net/qq_36962144/article/details/79815457https://www.cnblogs.com/ylspace/p/8128112.htmlhttps://www.cnblogs.com/fysola/p/6123947.html
http://www.yutouwan.com/news/478060/

相关文章:

  • 六安做网站公司宿迁建设局网站
  • 网站建设颊算a站网址是什么
  • html5网站wordpress二级域名建站
  • 做淘宝差不多的网站新增网站
  • 济南网站建设培训需要建设网站的
  • 内设网站网站建站公司有必要做吗
  • 网站的模板房地产行业市场分析
  • 河南建筑业城乡建设网站查询网站建设公司好做吗
  • 哪个网站可以做司考题网页版淘宝
  • 济南营销型网站建设团队个人公众号开发php
  • 站长资源平台网页游戏网页版
  • 做公司网站需要的材料有哪些开创云网站建设
  • 厦门网站建设2商务网站建设的基本步骤
  • 怎么建立一个好公司网站最吉祥的公司名字大全
  • 怎么自己做个免费网站电脑怎么制作app
  • 学校做网站买东西最便宜的软件
  • 山东济南最新消息网站更换空间对优化的影响
  • 泉州模板自助建站比较好的网站开发项目
  • 吴兴区建设局网站网站游戏网站建设
  • 成都网站建设行业分析网站报价表
  • 做招聘信息的网站宿州网站推广
  • 英文营销型网站建设巩义网站建设价格
  • 商务网站建设毕业设计模板下载人工智能公司
  • 凡科网站建设总结网页设计制作项目
  • 网站建设的发展网站的平面设计图用ps做
  • 上传网站模板建站手机测评做视频网站
  • 网站策划书专业网站建设服务
  • 网站体验提升思路温州网站建设联系电话
  • 怎么制作网站链接手机电子相册在线制作网站
  • 潍坊网站建设公司百度联盟 网站备案信息