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

洛阳网站推广优化百度不收录我的网站

洛阳网站推广优化,百度不收录我的网站,wordpress记录,一个网站的制作过程目录 文件字节输入流:每次读取多个字节 实例演示 注意事项 文件字节输入流:一次读取完全部字节 方式一 方式二 注意事项 文件字节输入流:每次读取多个字节 用到之前介绍过的常用方法: 实例演示 需求:用每次读取…

目录

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

实例演示

注意事项

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

方式一

方式二

注意事项


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

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

实例演示

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

相关文章:

  • 做导航网站用什么cmsowl WordPress主题
  • 河南建筑培训网莫停之科技windows优化大师
  • 爱用建站平台的优势计算机网络技术网站建设方向
  • 网站建设报价表下载贵州遵义企业公司网站建设
  • 威县做网站哪家好天堂网
  • 较好的网站设计师培训学校网上医疗和医院网站建设制作
  • 模板网站有哪几类网站网页优化技巧
  • 深圳网站建设那家好手机网站设计建设
  • 国外公共空间设计网站网站备案资质
  • 能被百度收录的建站网站思而忧网站
  • 苏州网站搜索引擎优化wordpress 自定义登陆
  • 手机自助网站建设营销组合策略
  • 外贸网站首页国外社交网站做的比较好的是
  • 有没类似建设通的免费网站做网站建设的销售怎么样
  • 杭州网站建设长春公司广州房地产网站建设
  • 工会网站升级改造建设方案焦作网站建设哪家公司好
  • 免费做网站网站的软件有哪些做企业点评的网站
  • 郑州电商网站建设教育培训机构网站模板
  • 法律建设网站数据库网站 建设费用
  • 自己ip做网站做网站费用滁州
  • 网站快速收录教程如何做网站快捷键的元素
  • 设计医院网站建设edge网页视频怎么下载
  • 给企业做网站 内容需要对方提供40个创意包装盒设计
  • 毕业设计网站前端代做成都住建局官网登陆
  • dedecms导航网站电子工程网络工程属于安防工程吗
  • 网站管理后台登录地址怎么买域名自己做网站
  • 月嫂网站建设生猪期货交易平台 app
  • 凡科建站官网页更换视频国外 设计网站
  • 十五款夜间禁用app免费ios镇江网站排名优化
  • 备案做电影网站吗优化外贸网站