zoukankan      html  css  js  c++  java
  • I/O流使用详解

    1. 什么是流

    概念:内存与存储设备只件传输数据的通道。在Java中,程序允许通过流的方式与输入输出设备进行数据传输。

    1.1. I/O流

    概念:输入输出流。它可以方便地实现数据的输入输出操作。I/O流有很多种,可分为如下几种。

    1.2 流的分类

    按方向:

    输入流:将存储设备中的内容读取道内存中。
    输出流:将内存中的内容写入到存储设备中。
    



    按单位:

    字节流:以字节为单位,可读写所有数据。以字节为单位进行数据的读写,每次读写一个或多个字节数据。
    字符流:以字符为单位,只能读写文本数据。以字符为单位进行数据的读写,每次读写一个或多个字符数据。
    

    按功能:

    节点流:具有实际传输数据的读写功能。
    过滤流:在节点流的基础之上增强功能。
    


    2. 字节流

    在计算机中,所有文件都是以二进制(字节)形式存在的。
    字节流是针对字节的输入输出提供的一种流。
    根据传输方向的不同,将其分为:

    字节输入流    
    字节输出流
    
    在JDK中,为它俩提供了两个抽象类
    InputStream
    OutputStream
    

    2.1 字节输入流



    上述是抽象类,不能直接使用,所以我们要用它的子类进行操作。Java中,针对文件的读写操作提供了两个类:FileInputStream和FileOutputStream

    2.1.1 文件字节输入流FileInputStream【将存储设备中的内容读取道内存中】


    public static void main(String[] args) throws Exception {
    	FileInputStream fis = new FileInputStream("C:\CH-HCNetSDKV6.1.6.4_build20201231_win64\Demo示例\4- Java 开发示例\2-报警布防监听\AlarmJavaDemo\src\alarmjavademo\testFile");
    	int data = 0;
    	// read() 有多种重载,可以一个一个字节读,也可以多个字节读。
    	while ((data=fis.read())!=-1) {
    		System.out.println(data); // 读取到的是他的ASCII码值
                    System.out.println((char)data); // 我们将其转成Char就行看见了
                    
    	}
    	fis.close();
    
            System.out.println();
    
    	FileInputStream fis2 = new FileInputStream("C:\CH-HCNetSDKV6.1.6.4_build20201231_win64\Demo示例\4- Java 开发示例\2-报警布防监听\AlarmJavaDemo\src\alarmjavademo\testFile");
    	int data2 = 0;
    	byte[] bytes = new byte[1024];
    	while ((data2 = fis2.read(bytes)) != -1) {
    		System.out.println(new java.lang.String(bytes, 0, data2));
    	}
    	fis2.close();
        }
    }
    

    2.2 字节输出流


    2.2.1 文件字节输出流FileOutputStream【将内存中的内容写入到存储设备中】



    public static void main(String[] args) throws Exception {
    	FileOutputStream out = new FileOutputStream("C:\CH-HCNetSDKV6.1.6.4_build20201231_win64\Demo示例\4- Java 开发示例\2-报警布防监听\AlarmJavaDemo\src\alarmjavademo\testFile2",true);
    	out.write(97); // a对应字符的ASCII码 97
    	
    	String s = "hello";
    	out.write(s.getBytes());
    	out.close();
    }
    


    3. 利用字节输入输出流做文件复制

  • 相关阅读:
    DES 算法的 C++ 与 JAVA 互相加解密
    ORACLE SQL 小记
    ACE 的头文件包含
    WTL 程序中显示 HTML
    GIS 中地理坐标和屏幕坐标的标准转换方法
    算盘中国古代伟大的计算器
    DELPHI 开发的 OCX 控件在 MFC 程序中编辑框快捷键不好使的解决
    服务端程序线程运行信息管理器
    ATL::CImage 的透明通道的处理与格式转换
    kinect sdk开发入门WPFdemo笔记
  • 原文地址:https://www.cnblogs.com/itlihao/p/14496334.html
Copyright © 2011-2022 走看看