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

网站a记录的是做cname百度搜索量怎么查

网站a记录的是做cname,百度搜索量怎么查,郑州富士康目前状况,用php做网站后台目录 文件字节输入流:每次读取多个字节 实例演示 注意事项 文件字节输入流:一次读取完全部字节 方式一 方式二 注意事项 文件字节输入流:每次读取多个字节 用到之前介绍过的常用方法: 实例演示 需求:用每次读取…

目录

文件字节输入流:每次读取多个字节

实例演示

注意事项

文件字节输入流:一次读取完全部字节

方式一

方式二

注意事项


文件字节输入流:每次读取多个字节

用到之前介绍过的常用方法:

实例演示

需求:用每次读取多个字节的方法读出File文件的内容

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;public class FileInputStreamTest2 {public static void main(String[] args) throws Exception {//1.创建一个字节输入流对象代表字节输入流管道与源文件接通。InputStream is = new FileInputStream("HelloWorld\\src\\file.txt");//2.开始读取文件中的字节数据:每次读取多个字节。//public int read(byte b[]) throws IoException//每次读取多个字节到字节数组中去,返回读取的字节数量,读取完毕会返回-1byte[] buffer = new byte[3];int len = is.read(buffer);String rs = new String(buffer);System.out.println(rs);System.out.println("当前读取的字节数量:" + len);//目标文件有5个字节,需要再读取一次//注意:读取多少,倒出多少int len2 = is.read(buffer);String rs2 = new String(buffer,0,len2);System.out.println(rs2);System.out.println("当前读取的字节数量:" + len2);int len3 = is.read(buffer);System.out.println(len3);   //-1is.close(); //关闭流}
}

运行结果:

使用循环改造一下

package user.IOTestOne;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;public class FileInputStreamTest2 {public static void main(String[] args) throws Exception {//1.创建一个字节输入流对象代表字节输入流管道与源文件接通。InputStream is = new FileInputStream("HelloWorld\\src\\file.txt");//使用循环byte[] buffer = new byte[3];int len;    //记住每次读取了多少个字节while((len = is.read(buffer)) != -1){//注意:读取多少,倒出多少String rs = new String(buffer,0,len);System.out.println(rs);}//性能得到了明显的提升//但是这种方案也不能避免读取汉字输出乱码的问题is.close(); //关闭流}
}

运行结果:

注意事项

  • 使用FilelnputStream每次读取多个字节,读取性能得到了提升,但读取汉字输出还是会乱码。

使用字节流读取中文,如何保证输出不乱码,怎么解决?

  • 定义一个与文件一样大的字节数组,一次性读取完文件的全部字节。

文件字节输入流:一次读取完全部字节

方式一

自己定义一个字节数组与被读取的文件大小一样大,然后使用该字节数组,一次读完文件的全部字节。

方法名称说明
public int read(byte[] buffer)每次用一个字节数组去读取,返回字节数组读取了多少个字节,如果发现没有数据可读会返回-1.

注意:文件存于硬盘中,硬盘的大小是极大的,文件的大小也可能会很大;但是我们定义的数组实际上存储于内存中,内存是很小的,无法给数组定义很大的长度;因此,这个方法只适合读取不那么大的文件。

选取案例还是那个File文件

package user.IOTestOne;import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;public class FileInputStreamTest3 {public static void main(String[] args) throws Exception{//1.创建一个字节输入流管道与源文件接通InputStream is = new FileInputStream("HelloWorld/src/file.txt");//2.准备一个字节数组,大小与文件的大小正好一样大。File f = new File("HelloWorld/src/file.txt");long size = f.length();byte[] buffer = new byte[(int) size];int len = is.read(buffer);System.out.println(new String(buffer));System.out.println("文件大小:" + size + "字节");System.out.println(len);is.close();}
}

运行结果:

方式二

  • Java官方为lnputStream提供了如下方法,可以直接把文件的全部字节读取到一个字节数组中返回。
方法名称说明
public byte[] readAllBytes()throws IOException直接将当前字节输入流对应的文件对象的字节数据装到一个字节数组返回
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;public class FileInputStreamTest3 {public static void main(String[] args) throws Exception{//1.创建一个字节输入流管道与源文件接通InputStream is = new FileInputStream("HelloWorld/src/file.txt");byte[] buffer = is.readAllBytes();  //JDK8 之后新增的方法System.out.println(new String(buffer));is.close();}
}

运行结果:

注意事项

直接把文件数据全部读取到一个字节数组可以避免乱码,是否存在问题?

  • 如果文件过大,创建的字节数组也会过大,可能引起内存溢出。

其实,读写文本内容本适合用字符流

字节流适合做数据的转移,如:文件复制等。

下篇就开始介绍字符流。


END


学习自:黑马程序员——Java课程

http://www.dinnco.com/news/44346.html

相关文章:

  • 做性的网站有哪些张家界网站seo
  • 聊城做网站费用价格如何创建一个app平台
  • 有没有手机做任务赚钱的网站长沙网络营销外包哪家好
  • 域名问题网站不更新百度开户流程
  • wordpress 模版制作seo赚钱项目
  • 制作企业网站是免费的吗企业网站模板 免费
  • 衡阳购物网站开发案例关于普通话的手抄报
  • 网站建设的基础是什么意思苏州网站优化排名推广
  • 网站虚拟机可以自己做吗百度运营平台
  • 广州建设公司seo优化关键词排名优化
  • 南充市建设局网站营销课程培训视频
  • 免费的静态网站托管seo优化或网站编辑
  • 做网站嘉兴会计培训班需要学多长时间
  • 网站开发毕业设计代做太原seo排名收费
  • 坪山区住房和建设局网站seo建站还有市场吗
  • 有了网站怎么做app百度推广账号登录入口
  • 常德政府网站站长东营网站建设
  • 怎么做网站优化 s网站如何做seo排名
  • 福州高端网站制作国外友链买卖平台
  • 网监备案网站西安刚刚宣布
  • php网站案例seog
  • wordpress高级模板东莞百度seo推广公司
  • 产品单页营销型网站模板百度浏览器网页版
  • 网站哪家公司做的好烟台seo快速排名
  • 网站关键词密这么稀释站长之家查询网站
  • 做网站视频网站开发流程有哪几个阶段
  • 农家院做宣传应该在哪个网站企业网站开发
  • 十堰外贸网站建设企业网站
  • 赤峰市城乡建设委员会官方网站国内新闻
  • 成都网站建设 推广行站长之家下载