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

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,使应用程序可以将几个输入流顺序连接起来。顺序输入流提供了将多个不同的输入流统一为一个输入流的功能,这使得程序可能变得更加简洁。

京东方全新自研f众所周知,在OLED屏领域,三星一直是王者,最高时拿下90的份额。而京东方TCL等国产厂商在后面慢慢追,现在终于拿到了20左右的份额,部分追上了三星的OLED屏水平。很多人认为,要win10MicrosoftWi家里的Win10电脑,今天突然网络适配器里面多了一个设备叫MicrosoftWiFiDirectVirtualAdapter,禁用了,不到2秒的时间会再创建一个出来。马上百度,原来谷歌Pixel7渲染图曝光基于CAD制作,有望10月推出IT之家3月26日消息,昨天有消息称谷歌Pixel7系列智能手机可能要到10月才会问世,现在Pixel7的渲染图已经曝光,这些渲染图基于CAD制作,可靠性很高。据LetsGoDig比亚迪对特斯拉下手了!全新海豹曝光,四驱3。8S破百,续航700Km导读比亚迪对特斯拉下手了!全新海豹曝光,四驱3。8S破百,续航700Km随着近几年的经济飞速发展,不再是之前的出门基本靠走了,人们对于汽车的日常需求也越来越高,数量也是极具的增加,华为mate10pro比华为mate10优势在哪里?10月16日华为年度旗舰Mate10系列手机发布,不出意料的发布了华为Mate10华为Mate10Pro以及华为Mate10保时捷版三款产品。那么很多用户纠结了究竟是选择Mate1魔改iPhone为什么一直有市场?文丨雷科技leitech5年前的秋天,为了向iPhone问世10周年致敬,苹果推出了万众瞩目的创新性产品iPhoneX,这款产品不仅首次采用了刘海屏设计,取消了物理home键设计,实体店,已进入无利期,个体门店经营户,能否存活下来呢?在过去的两年里,如果你有心,会发现社会上出现了一个非常神奇的现象。一方面,大家都在谈论互联网金融区块链人工智能大数据。无论是创业还是投资,很多人都把目光投向了这些新兴领域。但另一方英媒笨手机悄悄回归英国广播公司网站21日发表题为不智能但有智慧?笨手机的回归的报道,全文摘编如下17岁的罗宾韦斯特是同龄人中的异类她没有智能手机。她不会整天刷Instagram等软件,她用的是所谓笨骁龙778G手机卖4千,换芯版华为P50遇冷,上市两天评价仅2003月16日的2022华为全屋智能及全场景新品春季发布会上,华为正式发布了P50系列的第四款机型华为P50E,售价4088元起,已于3月24日正式上市。受管控条例影响,P50E依旧只赵丽萍决策AI将降低企业智能转型门槛中新经纬3月26日电题决策AI将降低企业智能转型门槛作者赵丽萍中金公司研究部软件电信和教育行业分析师,执行总经理决策AI已在互联网行业证明具备显著的商业价值,是互联网巨头智能化转型电子管的发明现代半导体芯片经常是由上百亿个MOS晶体管所组成。而在MOS晶体管发明之前,双极型晶体管发挥着重要作用。但是双极型晶体管也不是凭空创造的,它是在电子管的应用基础上发明的。这些器件的
营收巨亏近10亿,王卫身家缩水1340亿,顺丰如何度过至暗时刻?出品探客Tanker作者行者编辑蛋总5月28日,京东物流在香港上市,上市首日收涨超3。3,报41。7港元每股,成交额约71。7亿港元,市值为2540。2亿港元。这是继京东健康上市后iCloud(贵安)数据中心建成并投入运行或将提速降费CNMO新闻5月25日,由云上贵州与苹果公司联合建设的iCloud(贵安)数据中心正式宣布建成并投入运行。据了解,iCloud(贵安)数据中心采用了世界领先的设计理念和先进的设备设iPhone13系列镜头模组更厚或将全系标配位移式光学防抖苹果的每一款新机都在影像系统方面下足了功夫,让大家眼前一亮。就拿去年发布的iPhone12ProMax来说吧,这款手机采用了位移式光学防抖技术,简单来说就是让传感器进行了位移,然后新国货品牌50强小米第2,蓝月亮第14,九阳第20伴随着中国经济的腾飞,中国企业的发展也以肉眼可见的速度崛起,一大批技术先进的企业和品牌脱颖而出,在全球化的经济竞争中展现出了强大的实力,在国内市场的竞争力方面更是优势巨大,支持国产买手机时应该怎么看手机配置?市场上有哪些手机配置比较好?文小伊评科技买手机应该看什么配置,这个问题看上去很简单,但是想要真正的回答清楚也是非常困难的。我看到很多回答都是简单的罗列一下处理器,屏幕,电池,快充等。但是这种像公式一样的回答虽uniapp前端用forEach循环遍历数组uniapp前端用forEach循环遍历数组constdbuniCloud。database()。collection(opendbbanner)。get()。then((res)许家印我干过十年车间主任造车有基本功丨棱镜腾讯棱镜作者张庆宁3月26日,中国恒大在香港召开2018年业绩发布会,恒大董事局主席许家印谈及造车时调侃,别忘了我干过十年车间主任,有基本功的。1982年,许家印自武汉钢铁学院(现中国首辆氢能碳纤维汽车诞生,续航超1200km,外观酷到没朋友来源机械前沿3月20日,武汉地质资源环境工业技术研究院透露,以氢能为动力采用碳纤维车身的格罗夫乘用车首辆样车在中国光谷研制成功。这标志着中国首台采用氢能碳纤维车身的自主品牌乘用车诞马云收购的这个彩票公司,为何扭亏为盈赚3。17亿?2016年,马云旗下的阿里巴巴以23。88亿港元收购香港上市彩票公司亚博科技控股(以下简称亚博)50。7的股份,成为大股东。3月22日晚间,亚博发布2018年财报,实现收益1。68永不丢失的电子笔记本OneNote很多小伙伴有做学习笔记的好习惯,其实做笔记对于我们个人的学习内容整理学习进度反思知识归类与罗列都有着相当大的帮助作用。小编上学的时候本来也不爱做笔记,总感觉带着一个本子怪麻烦的,做华为疯狂暗示!3月26号除了P30之外,发布会上还有这4大看点!相信大家最近比较关注的问题无非就是运营商方面的携号转网的即将实行,以及各大手机厂商所发布的新款手机了。但由于运营商的携号转网目前还只是处在筹建阶段,要实现真正意义上的普及还需再等一