java IO流 之 输入流 InputString()的使用

网友投稿 200 2023-06-26


java IO流 之 输入流 InputString()的使用

本文主要给大家介绍java的InputStream 流http://的使用。

(1)FileInputstream: 子类,读取数据的通道

使用步骤:

1.获取目标文件:new File()

2.建立通道:new FileInputString()

3.读取数据:read()

4.释放资源:close()

//一些默认要导入的包

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

public static void main(String[] args) throws IOException {

// TODO Auto-generated method stub

//分别调用方法查看效果

test1();

System.out.println("-------------------------------------------");

test2();

System.out.println("-------------------------------------------");

test3();

System.out.println("-------------------------------------------");

test4();

}

(2)读取数据的三种方式

1.直接读取 (一次只能一个字节)

int date = fileInputStream.read();

      char date3 = (char)fileInputStream.read();

//方式一 直接打印

public static void test1() throws IOException{

//(1)获取目标文件路径

File file = new File("C:\\Users\\joke\\Desktop\\Demo1.java");

//(2)根据目标文件路径 建立通道: new FileInputStream(file)

FileInputStream fileInputStream = new FileInputStream(file);

//(3)读取数据 :read();

int date = fileInputStream.read();//这里是int类型

int date2 = fileInputStream.read();//

char date3 = (char)fileInputStream.read(); //以char类型显示

System.out.println(date+"\\"+date2+"\\"+date3);

/uAqkknNP/(4)释放资源

fileInputStream.close();

}

2.单独使用for循环(效率低)

for(int i = 0; i < file.length();i++){

        System.out.print((char)fileInputStream.read());

      }

//方式二 循环遍历

public static void test2() throws IOException{

//通过时间测试效率

long startTime = System.currentTimeMillis();

File file = new File("C:\\Users\\joke\\Desktop\\Demo1.java");

FileInputStream fileInputStream = new FileInputStream(file);

//for循环

for(int i = 0; i < file.length();i++){

System.out.print((char)fileInputStream.read());

}

fileInputStream.close();

long endTime = System.currentTimeMillis();

System.out.println("读取文件所花时间:"+(endTime-startTime));

}

3.Byte[ ] 缓冲区(只能读取指定的字节数不能读取一个完整的文件)

byte[] bt = new byte[1024];

      int count = fileInputStream.read(bt);

      System.out.println(new String (bt,0,count));

//方式三 创建缓冲区(只能读取制定的大小,不能读取一个完整的文件)

public static void test3() throws IOException{

File file = new File("C:\\Users\\joke\\Desktop\Demo1.java");

FileInputStream fileInputStream = new FileInputStream(file);

//创建缓冲区,加快读取数据,确定要读取的字节大小

byte[] bt = new byte[1024];

//read() 读取字节

int count = fileInputStream.read(bt);

System.out.println(count); //显示读取到的字节数

System.out.println(new String (bt,0,count));//将字节转为字符串显示

fileInputStream.close();

}

4.缓冲区和循环结合。缓冲区一般设置为1024的倍数。理论上设置的缓冲区越大,读取效率越高

byte[] bt = new byte[1024];

      int count = 0;

      while((count = fileInputStream.read(bt)) != -1){

        System.out.println(new String (bt,0,count));

      }

//方式四 循环与缓冲区结合(效率高)

public static void test4() throws IOException{

//通过时间测试效率

long startTime = System.currentTimeMillis();

File file = new File("C:\\Users\\joke\\Desktop\\Demo1.java");

FileInputStream fileInputStream = new FileInputStream(file);

//缓冲区一般设置为1024的倍数。理论上设置的缓冲区越大,读取效率越高

byte[] bt = new byte[1024];

int count = 0;

//read返回 -1 时,证明已经遍历完

while((count = fileInputStream.read(bt)) != -1){

//字符串型显示(从bt中的第0个字节开始遍历count个长度)

System.out.println(new String (bt,0,count));

}

fileInputStream.close();

long endTime = System.currentTimeMillis();

System.out.println("读取文件所花时间:"+(endTime-startTime));

}

陌陌说:

在以上,对比第二个和第四个方法,会发现方法四的效率是比较高的,所以推荐使用的四个方法

在这里我们是直接抛出异常,除了抛出之外我们还可以使用

try{  }cater{  }finally{  }

的方式来处理异常

以上所述是给大家介绍的java IO流 之 输入流 InputString()的使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java IO流 之 输出流 OutputString()的使用
下一篇:如何防止INPUT按回车自动提交表单FORM
相关文章

 发表评论

暂时没有评论,来抢沙发吧~