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

网站框架结构图效果图网站有哪些好的

网站框架结构图,效果图网站有哪些好的,网站建设朋友圈怎么写,个人管理系统目录 文件字节输入流:每次读取多个字节 实例演示 注意事项 文件字节输入流:一次读取完全部字节 方式一 方式二 注意事项 文件字节输入流:每次读取多个字节 用到之前介绍过的常用方法: 实例演示 需求:用每次读取…

目录

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

实例演示

注意事项

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

方式一

方式二

注意事项


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

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

实例演示

需求:用每次读取多个字节的方法读出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.yayakq.cn/news/365565/

相关文章:

  • 代做设计的网站网站技能培训机构
  • 网站推荐2021邢台网站建设 冀icp备
  • 网站改版制作智效云seo
  • 如何做织梦论坛类的网站重庆竣工验收备案网上查询
  • 网站建设优化服务好么宁夏网站seo
  • 在线教育网站建设投标书下载app软件安装手机上
  • 郑州高新区做网站的公司wordpress文字轮播
  • c 能用来做网站吗企业网站建设方案模板
  • 免版权图片网站wordpress为什么感觉加载慢
  • 福建微网站建设价格附近室内设计培训学校
  • 网站域名备案变更意大利天天电信app下载
  • 做个淘宝客网站怎么做的紧急通知河南全省暂停
  • 海洋网络做网站不负责大连零基础网站建设培训哪里有
  • 山东青岛网站设计公司linux 下载wordpress
  • 扁平化颜色网站企业微网站制作教程
  • 企划做网站网站内容的设计
  • 智能模板网站建设南江县规划和建设局网站
  • 网站被k后是怎样的邯郸网站制作费用
  • 网站开发选择题亚马逊推广
  • 池州网站开发界面设计是做什么的
  • 旅游网站的系统建设的意义做爰动态视频网站
  • 打鱼跟电子游戏网站怎么做wordpress文本块表格
  • 上海浦东做网站的公司昆明网站建设首选才力
  • 网投怎么做网站网站设计的目标
  • 网站源码调试地名网站建设方案
  • 有哪些网站是免费学做网页的wordpress 是什么
  • seo站内优化站外优化html简单网页代码作业
  • 搭建wordpress需要php环境吗上海有什么seo公司
  • 瓦房店网站制作免费大数据平台
  • 建站工具原理网络策划就业前景