I/O流学习--InputStream下的常用方法
来源:互联网 发布:点读包音频切割软件 编辑:程序博客网 时间:2024/05/16 18:11
本文介绍一些读取文件的常用方法,代码如下:
skip方法:从输入流中跳过参数n指定数目的字节:
package com.jredu.InputStream;/** * skip的使用 */import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;public class Tch5 {public static void main(String[] args) {try {FileInputStream fis=new FileInputStream("此处为要读取的文件的相对路径");try {byte[] b=new byte[fis.available()];//跳过n个字节后再开始读取fis.skip(5);fis.read(b);System.out.println(new String(b));fis.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
mar()方法:标记输入流的当前位置,以便可使用reset()方法复位到该标记的位置
reset()方法:将当前位置复位为上次调用mar()方法方法标记的位置
package com.jredu.InputStream;import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;/** * mar的使用 * @author Hello * */public class Tch6 {public static void main(String[] args) {//读取过程中暂停//给当前位置做一个标记//下一次从标记位置读取try {//缓冲流:BufferedInputStream带有缓冲,相比FileInputStream读取更快BufferedInputStream bis=new BufferedInputStream(new FileInputStream("此处为要读取文件的相对路径"));byte[] b=new byte[bis.available()]; //设置断点bis.mark(bis.read(b,0,b.length/2));System.out.println(new String(b));System.out.println("暂停读取...");//设置休眠两秒Thread.sleep(2000);System.out.println("继续读取...");//reset将当前复位的位置设置成上次调用mark标记的位置bis.reset();bis.read(b);System.out.println(new String(b));bis.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
序列流的使用
package com.jredu.InputStream;/** * 序列流(集合流):把n个流合并在一起读取 */import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.SequenceInputStream;import sun.net.www.content.audio.basic;public class Tch7 {public static void main(String[] args) {try {//第一个文件流FileInputStream fis1=new FileInputStream("此处为要读取文件的相对路径");//第二个文件流FileInputStream fis2=new FileInputStream("此处为要读取文件的相对路径");//合并到序列流中,此方法只能合并两个文件SequenceInputStream sis=new SequenceInputStream(fis1, fis2);//临时存放数据的数组byte[] b=new byte[fis1.available()+fis2.available()];//一次性读取所有内容while(sis.read(b)!=-1){System.out.println(new String(b));}sis.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
上面的序列流只能合并两个文件,如果要合并多个文件,可以用下面的方法
package com.jredu.InputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.io.SequenceInputStream;import java.util.Vector;public class Tch8 {public static void main(String[] args) {try {//三个文件流FileInputStream is = new FileInputStream("此处为要读取文件的相对路径");FileInputStream is2 = new FileInputStream("此处为要读取文件的相对路径");FileInputStream is3 = new FileInputStream("此处为要读取文件的相对路径");Vector<FileInputStream>vector=new Vector<>();//把三个流添加到集合中vector.add(is);vector.add(is2);vector.add(is3);//合并在一个序列流中SequenceInputStream sis=new SequenceInputStream(vector.elements());byte[] n=new byte[is.available()+is2.available()+is3.available()];int off=0;for(int i=0;i<vector.size();i++){//off是数组当中存放数据的起始下标位置off+=sis.read(n,off,vector.get(i).available());}System.out.println(new String(n));sis.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
阅读全文
1 0
- I/O流学习--InputStream下的常用方法
- I/O流学习--InputStream的读取文件方法
- linux下的常用I/O模型
- JavaSE I/O 输入字节流 InputStream
- C++ 学习笔记 I/O流的常用控制符
- I/O流学习--OutputStream的写入方法
- i/o流的学习
- Java I/O总结 -- InputStream
- Java8 I/O源码-InputStream
- I/O流的设计(Java的InputStream/OuputStream和Reader/Writer的C++实现)
- java的常用I/O流~~
- I/O流常用的简化操作
- Java I/O流-总结(InputStream,OutputStream,Reader,Writer)
- Java I/O流-总结(InputStream,OutputStream,Reader,Writer)
- Java I/O流-总结(InputStream,OutputStream,Reader,Writer)
- Java I/O流InputStream,OutputStream,Reader,Writer
- I/O流之进步认识、InputStream以及FileInputStream
- Java随笔(2)I/O流中InputStream/OutputStream
- 第七届河南理工大学程序设计大赛(正式赛)D题
- 51nod 1285 山峰和分段
- 剑指Offer [07] 斐波那契数列
- 短时平均能量
- 《程序员的修炼之道》笔记——5、你的知识资产
- I/O流学习--InputStream下的常用方法
- Your pip version is out of date, please install pip >= 9.0.1.
- spring test集成resteasy mock单元测试
- 成员变量的隐藏
- setfacl使用
- 用Intellij Idea创建maven项目 web项目
- 用eclipse开发项目时遇到的常见错误整理,和配套解决方案
- html入门练手必备之表格及其代码
- poj 1065