• Io流介绍及用法


    一、LO流介绍:

             lo流是用来处理设备之间数据传输的!

    二、 lo流分类:

             流向分类

                  输入流(inputStream和Reader):

                  输出流(OutputStream和Writer): 

                 如:内存卡和硬盘!

                     硬盘内数据传入内存卡则是输入流!内存卡向硬盘传输数据则是输出流!

             操作类型分类

                   字节流(inputStream和OutputStream):字节流可以操作任何数据(计算机数据都是字节形式存储)

                   字符流(Reader和Writer):字符流只能操作纯字符数据,防止乱码

            相对路径和绝对路径:

                   相对路径:指某个文件路径和别的文件路径关系的

                   绝对路径:硬盘是真正存在的路径!

    三、常用Io流类:

               

    四、

       目的:使用FileInputStream读取文件
    *                   思路:
    *                         使用FileInputStream读取文件
    *                         项目右键创建File,创建txt文件
    *                         在txt输入字符
    *                        返回public页面,
    *                        建立和txt通道(找到txt绝对路径)
    *                        打印txt字符

    代码:

               

    public class FilelnputStreamText01 {
       public static void main(String[]ages){
    	   FileInputStream fis=null;
    	  // 使用读取文件,需要添加被读取路径,加双\,在异常最大化,(路径寻找,a.txt右击properties就可以找到路径)
    	   try {
    		   //建立通道
    		 //fis =new FileInputStream("D:\myeclipse\chapter_01\a.txt");

                                              // 相对路径
                                             fis =new FileInputStream("a.txt");

    		 //无参类型,返回int值,如果打印的是字母(字码值)读取完毕返回-1
    		 //第一种打印
    		/*System.out.println(fis.read());
    		System.out.println(fis.read());*/
    		 
    		 //第二种打印!效率不高,一个一个字符打印
    		/* int temp;
    		 while((temp = fis.read()) != -1){
    			 //强行转换为char类型,java数值用unicode表示,转换为char类型就可以用原来数值来表示
    			 char c = (char)temp;
    			 System.out.println(c);*/
    		/* }*/
    		 
    		 //第三种打印
    		 //定义byte数组告诉系统一次读取几个字节,减少内存和硬盘之间通信,可以提高效率
    		 byte[]arr=new byte[5];
    		 int temp;
    		 //有参的read方法返回的int值是读取几个字节
    		 while((temp = fis.read(arr)) !=-1){
    			 System.out.println(new String(arr,0,temp));
    		 }
    		
    	} catch (FileNotFoundException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	} catch (IOException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    		//finally即使上面代码报错,finally里面代码也会执行,close减少内存
    	}finally{
    		try {
    			fis.close();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
       }
    }
    

      运行结果:第一种方法,打印几个,就运行几个结果!代码比较重复

                             第二种方法:全部打印出来,只不过字符却是一个一个被打印出来:如:123,打印出来就是:1,2,3(隔一行)

                             第三种方法:直接全部打印出来,只要给byte字节数(字符位数)! 

            注意:开发中分隔符最好不要直接写:File.separator(写上这一句话,连接路径就没得问题了)

                         fis =new FileInputStream(“file”+ File.separator+"a.txt",true);

  • 相关阅读:
    煲鸡汤流程
    面向对象
    程序员英语学习思维导图
    百度通配符学习
    面向对象
    IO学习
    理解java的三大特性之继承
    重载(overload)、覆盖(override)、隐藏(hide)的区别
    2018年值得关注的10大JavaScript动画库
    小知识点总结
  • 原文地址:https://www.cnblogs.com/wsx123/p/13680984.html
Copyright © 2020-2023  润新知