手机
当前位置:查字典教程网 >编程开发 >Java >java IO流 之 输入流 InputString()的使用
java IO流 之 输入流 InputString()的使用
摘要:本文主要给大家介绍java的InputStream流的使用。(1)FileInputstream:子类,读取数据的通道使用步骤:1.获取目标...

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

(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:UsersjokeDesktopDemo1.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); //(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:UsersjokeDesktopDemo1.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:UsersjokeDesktopDemo1.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:UsersjokeDesktopDemo1.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()的使用,希望对大家有所帮助,如果大家有任何疑问请给我们留言,小编会及时回复大家的。在此也非常感谢大家对查字典教程网的支持!

【java IO流 之 输入流 InputString()的使用】相关文章:

java IO流文件的读写具体实例

java验证码组件kaptcha使用方法

java list与数组之间的转换详细解析

java定时调度器(Quartz)使用实例

基于Java回顾之多线程同步的使用详解

java中的Io(input与output)操作总结(二)

Java输入流Scanner/BufferedReader使用方法示例

深入解析Java中volatile关键字的作用

Java 位图法排序的使用方法

Java语法基础之函数的使用说明

精品推荐
分类导航