码迷,mamicode.com
首页 > 其他好文 > 详细

I/O流使用详解

时间:2021-03-08 14:22:30      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:输入输出流   ascii码   概念   字符流   tput   pre   write   java 开发   sys   

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. 利用字节输入输出流做文件复制

技术图片

I/O流使用详解

标签:输入输出流   ascii码   概念   字符流   tput   pre   write   java 开发   sys   

原文地址:https://www.cnblogs.com/itlihao/p/14496334.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!