范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

JDK基础入门,这一篇文足矣

  JDK基础入门
  字节流主要操作 byte 类型数据,以 byte 数组为准,java 中每一种字节流的基本功能依赖于基本类 InputStream 和 Outputstream,他们是抽象类,不能直接使用。字节流能处理所有类型的数据(如图片、avi 等)。
  InputStream
  InputStream 是所有表示字节输入流类的基类,继承它的子类要重新定义其中所定义的抽象方法。InputStream 是从装置来源地读取数据的抽象表示,例如 System 中的标准输入流 in 对象就是一个 InputStream 类型的实例。
  我们先来看看 InputStream 类的方法:
  方法
  说明
  read()throws IOException
  从输入流中读取数据的下一个字节(抽象方法)
  skip(long n) throws IOException
  跳过和丢弃此输入流中数据的 n 个字节
  available()throws IOException
  返回流中可用字节数
  mark(int readlimit)throws IOException
  在此输入流中标记当前的位置
  reset()throws IOException
  将此流重新定位到最后一次对此输入流调用 mark 方法时的位置
  markSupport()throws IOException
  测试此输入流是否支持 mark 和 reset 方法
  close()throws IOException
  关闭流
  在 InputStream 类中,方法   read()   提供了三种从流中读数据的方法:
  1. int read():从输入流中读一个字节,形成一个 0~255 之间的整数返回(是一个抽象方法)。
  2. int read(byte b[]):从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。
  3. int read(byte b[],int off,int len):从输入流中读取长度为 len 的数据,写入数组 b 中从索引 off 开始的位置,并返回读取得字节数。
  对于这三个方法,若返回 -1,表明流结束,否则,返回实际读取的字符数。
  OutputStream
  OutputStream 是所有表示字节输出流类的基类。子类要重新定义其中所定义的抽象方法,OutputStream 是用于将数据写入目的地的抽象表示。例如 System 中的标准输出流对象 out 其类型是 java.io.PrintStream,这个类是 OutputStream 的子类。
  OutputStream 类方法:
  方法
  说明
  write(int b)throws IOException
  将指定的字节写入此输出流(抽象方法)
  write(byte b[])throws IOException
  将字节数组中的数据输出到流中
  write(byte b[], int off, int len)throws IOException
  将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流
  flush()throws IOException
  刷新此输出流并强制写出所有缓冲的输出字节
  close()throws IOException
  关闭流
  文件流
  在 I/O 处理中,最常见的就是对文件的操作。java.io 包中所提供的文件操作类包括:
  1. 用于读写本地文件系统中的文件:FileInputStream 和 FileOutputStream
  2. 描述本地文件系统中的文件或目录:File、FileDescriptor 和 FilenameFilter
  3. 提供对本地文件系统中文件的随机访问支持:RandomAccessFile
  今天我们来学习文件流的 FileInputStream 和 FileOutputStream。
  FileInputStream 类用于打开一个输入文件,若要打开的文件不存在,则会产生异常 FileNotFoundException,这是一个非运行时异常,必须捕获或声明抛弃。 FileOutputStream 类用来打开一个输出文件,若要打开的文件不存在,则会创建一个新的文件,否则原文件的内容会被新写入的内容所覆盖。
  在进行文件的读/写操作时,会产生非运行时异常 IOException,必须捕获或声明抛弃(其他的输入/输出流处理时也同样需要进行输入/输出异常处理)。
  缓冲流
  类 BufferedInputStream 和 BufferedOutputStream 实现了带缓冲的过滤流,它提供了缓冲机制,把任意的 I/O 流"捆绑"到缓冲流上,可以提高 I/O 流的读取效率。
  在初始化时,除了要指定所连接的 I/O 流之外,还可以指定缓冲区的大小。缺省时是用 32 字节大小的缓冲区;最优的缓冲区大小常依赖于主机操作系统、可使用的内存空间以及机器的配置等;一般缓冲区的大小为内存页或磁盘块等的整数倍。
  BufferedInputStream 的数据成员 buf 是一个位数组,默认为 2048 字节。当读取数据来源时例如文件,BufferedInputStream 会尽量将 buf 填满。当使用   read ()   方法时,实际上是先读取 buf 中的数据,而不是直接对数据来源作读取。当 buf 中的数据不足时,BufferedInputStream 才会再实现给定的 InputStream 对象的 read() 方法,从指定的装置中提取数据。
  BufferedOutputStream 的数据成员 buf 是一个位数组,默认为 512 字节。当使用   write()   方法写入数据时,实际上会先将数据写至 buf 中,当 buf 已满时才会实现给定的 OutputStream 对象的  write()   方法,将 buf 数据写至目的地,而不是每次都对目的地作写入的动作。
  数据流
  接口 DataInput 和 DataOutput,设计了一种较为高级的数据输入输出方式:除了可处理字节和字节数组外,还可以处理 int、float、boolean 等基本数据类型,这些数据在文件中的表示方式和它们在内存中的一样,无须转换,如   read()   ,  readInt()   ,  readByte()   ...;  write()   ,  writeChar()   ,  writeBoolean()   ... 此外,还可以用  readLine()   方法读取一行信息。
  方法:
  方法
  返回值
  说明
  readBoolean()
  boolean
  readByte()
  byte
  readShort()
  short
  readChar()
  char
  readInt()
  int
  readLong()
  long
  readDouble()
  double
  readFloat()
  float
  readUnsignedByte()
  int
  readUnsignedShort()
  int
  readFully(byte[] b)
  void
  从输入流中读取一些字节,并将它们存储在缓冲区数组 b 中
  readFully(byte[] b, int off,int len)
  void
  从输入流中读取 len 个字节
  skipBytes(int n)
  int
  与 InputStream.skip 等价
  readUTF()
  String
  按照 UTF-8 形式从输入中读取字符串
  readLine()
  String
  按回车 (r) 换行 ( ) 为分割符读取一行字符串,不完全支持 UNICODE
  writeBoolean(boolean v)
  void
  writeByte(int v)
  void
  writeShort(int v)
  void
  writeChar(int v)
  void
  writeInt(int v)
  void
  writeLong(long v)
  void
  writeFloat(float v)
  void
  writeDouble(double v)
  void
  write(byte[] b)
  void
  与 OutputStream.write 同义
  write(byte[] b, int off, int len)
  void
  与 OutputStream.write 同义
  write(int b)
  void
  与 OutputStream.write 同义
  writeBytes(String s)
  void
  只输出每个字符的低 8 位;不完全支持 UNICODE
  writeChars(String s)
  void
  每个字符在输出中都占两个字节
  数据流类 DataInputStream 和 DataOutputStream 的处理对象除了是字节或字节数组外,还可以实现对文件的不同数据类型的读写:
  1. 分别实现了 DataInput 和 DataOutput 接口。
  2. 在提供字节流的读写手段同时,以统一的形式向输入流中写入 boolean,int,long,double 等基本数据类型,并可以再次把基本数据类型的值读取回来。
  3. 提供了字符串读写的手段。
  标准流、内存读写流、顺序输入流
  语言包 java.lang 中的 System 类管理标准输入/输出流和错误流。
  System.in   从 InputStream 中继承而来,用于从标准输入设备中获取输入数据(通常是键盘)  System.out   从 PrintStream 中继承而来,把输入送到缺省的显示设备(通常是显示器)  System.err   也是从 PrintStream 中继承而来,把错误信息送到缺省的显示设备(通常是显示器)
  每当 main 方法被执行时,就会自动生产上述三个对象。这里就不再写代码验证了。  内存读写流
  为了支持在内存上的 I/O,java.io 中提供了类:ByteArrayInputStream、ByteArrayOutputStream 和 StringBufferInputStream
  1. ByteArrayInputStream 可以从指定的字节数组中读取数据。
  2. ByteArrayOutputStream 中提供了缓冲区可以存放数据(缓冲区大小可以在构造方法中设定,缺省为 32),可以用   write()   方法向其中写入数据,然后用  toByteArray()   方法将缓冲区中的有效字节写到字节数组中去。size() 方法可以知道写入的字节数,  reset()   可以丢弃所有内容。
  3. StringBufferInputStream 与 ByteArrayInputStream 相类似,不同点在于它是从字符缓冲区 StringBuffer 中读取 16 位的 Unicode 数据,而不是 8 位的字节数据(已被 StringReader 取代)。
  这里只做简要的介绍,有兴趣的同学可以查看一下这些类里具体的方法。
  顺序输入流
  java.io 中提供了类 SequenceInputStream,使应用程序可以将几个输入流顺序连接起来。顺序输入流提供了将多个不同的输入流统一为一个输入流的功能,这使得程序可能变得更加简洁。

宽带升级后,需要把路由器,网线升级吗?谢邀。是这样的,带宽升级到200M需要满足以下条件才能体验200M的上网速率1。光猫必须为千兆光猫(至少一个LAN口为千兆)2。路由器WAN口和LAN口必须为千兆口且支持5G频率,华为手机音质拍照续航都不错的手机有哪些?感谢邀请华为手机音质拍照续航都不错的手机有哪些?音质不错的手机,其实笔者第一个想到是荣耀20系列,而第二个想到的是mate20X,当然拍照和续航的相互结合我们会更加建议去选择荣耀2试管婴儿的后代是否也要通过试管才能生孩子,为什么?不完全是。做试管婴儿主要是因为夫妻某一方有遗传学问题,如染色体畸变或染色体变异。有染色体畸变的人往往生育方面会有麻烦,如不孕,流产等。临床上比较常见的染色体平衡易位携带者或倒位的携用好互联网农具让电商扶贫助农又助学网络直播达人齐聚直播天府乡村振兴计划启动仪式用好互联网农具让电商扶贫助农又助学华西都市报讯(见习记者邹阿江)10月14日下午,直播天府乡村振兴计划启动仪式暨川农好物创作分享会在成都小米蚂蚁集团关联公司入股支出宝后者为采购支出管理服务商天眼查App显示,近日,支出宝(北京)信息技术有限公司发生工商变更,新增瀚星创业投资有限公司(小米全资持股)共青城凡创一期创业投资合伙企业(有限合伙)(蚂蚁集团关联公司)等为股东,跨境电商增势迅猛5年增长近10倍,综合试验区扩容至105个跨境电商增势迅猛中国跨境电商行业经历数年的积累蓄力,迎来快速发展的黄金期。全国跨境电子商务综合试验区(简称跨境电商综试区)扩容至105个,华为提出千兆5G宇宙概念财经网科技10月15日讯,据新浪科技消息,在昨日的2021全球移动宽带论坛(MBBF2021)上,华为无线网络产品线总裁杨超斌发表了题为创新永恒,共建5Gigaverse社会的主题美国供应链挑战有多严重?优步货运负责人美国正处在航运末日财联社(上海,编辑周玲)讯,美东时间周四(14日),优步货运(UberFreight)负责人利奥罗恩(LiorRon)对媒体表示,美国正处于航运末日,而且没有单一解决方案。专家预测深纺织A与宸鸿科技等战略签约开启偏光片业务布局中证网讯(记者齐金钊)日前,深纺织A(000045)发布公告称,公司及控股子公司盛波光电与宸鸿科技天材创新晟和元签署战略合作框架协议,各方将充分利用自身优势资源,共同推进纳米银触控亚马逊美国卖家配送订单的时尚商品免费退货早上好!凯德盟欢迎您进入早报时间!1美国拟提出法案禁止亚马逊谷歌偏袒自家产品和服务克洛布查尔是美国参议院司法委员会反垄断小组委员会的主席,而格拉斯利是整个参议院司法委员会的主席。这腾讯股份比例是怎样的?1。当年马化腾创业突见成效的时候,急需资金购买服务器和为员工开支,当时准备寻找国外风险投资,IDG和盈科数码以各占腾讯20股份的代价向腾讯投资了220万美元。马化腾及其团队持股60
iPhone13强悍特性曝光,iPhone12让路新机跌至爱疯价据台湾媒体DigiTimes报道,今年发布的iPhone13系列手机中,超过50将支持5G毫米波网络。值得一提的是,由于iPhone13新机的曝光,导致iPhone12价格持续走低宝莱坞女演员认为5G传播新冠,呼吁摧毁5G信号塔,3周摧毁20多座近日,印度当地媒体报道表示,在最近的三周内,印度本土有20多个5G信号塔被民众摧毁。不仅如此,感到离谱的地方还在于此次行动中,还有这许多公众人物与本土明星的参与。JuhiChawl千兆路由器选择哪个好点?应邀回答本行业问题。路由器是家庭组网的核心网,目前家庭宽带不断提速,拥有一款适合自己的千兆无线路由器就成了重中之重。选择无线路由器一定要选择真正的千兆无线路由器,要注意网口是否千兆鸿蒙来了!上百款设备将陆续启动升级,升级设备清单公布6月2日晚间,华为鸿蒙操作系统HarmonyOS迎来重要时刻,华为正式发布多款搭载HarmonyOS2的新产品,包括HUAWEIMate40系列新版本MateX2新版本HUAWEI比特币狼来了,6月份的惊惶和祈望用一句诗句来对上个月的行情做个总结飞流直下三千尺,遥看瀑布挂前川。经历了5月份的崩盘,对于六月份或多或少有些惊惶和祈望,惊惶的是5月份的历史会不会重演祈望的是价格能否回调新高点,好造车新势力5月份销量出炉,理想屋漏偏遭连夜雨造车新势力现如今已经明显形成了蔚来理想小鹏三足鼎立的现状。谁都没有想到,不过短短一年的时间,这三家公司便经历了过山车般的濒临死亡和腾空而起,虽然目前看上去造车新势力是一片祥和,但是HarmonyOS2来了,手里的华为Mate40系列用上后,更香了华为Mate40系列手机发布至今,一直是非常受欢迎的产品。而近日,伴随着华为正式推出了HarmonyOS2并在华为Mate40系列上率先升级,为华为Mate40系列带来了全新的体验大批混动车即将失去购置税免征优惠,有些车企正改进车型,还有些准备让消费者买单在补贴逐渐退坡的情况下,对混合动力汽车市场影响更大的购置税政策,也将发生变化,目前在售的大部分混合动力车型或将因此失去免缴购置税政策优惠。近日,国家税务总局发布关于调整免征车辆购置电视小米好还是tcl好?如果是你你会怎么选?肯定首推tcl,小米电视除了便宜就真的没有其他优点了。对比下,TCL有自己的屏(华星光电),用的屏幕好,技术沉淀最好。你要知道,TCL的华星光电55吋屏2019年全球销量第一,国货鸿蒙正式出道!小米Ov一加等厂商会使用吗?昨晚,华为正式发布HarmonyOS2及多款搭载HarmonyOS2的新产品。发布会现场堪称手机届春晚,各种话题接连冲上热搜,这足以证明鸿蒙在国人心里是有多么的重要。对于这个全新升考拉会员制打造全新消费体验满足会员多元化需求考拉海购作为专业的以跨境进口业务为主的会员电商,在新消费时代背景下,为会员提供高性价比的品质好物同时,也为会员带去了全新的消费体验,满足了考拉会员多元化的需求。考拉海购深知在消费观