黑马程序员 IO流学习笔记二

本文详细介绍了Java中的IO流概念及分类,包括字节流和字符流,并深入探讨了FileInputStream和FileOutputStream等核心类的使用方法及注意事项。

----------android培训java培训、java学习型技术博客、期待与您交流!----------

 IO流学习笔记二:

通过学习毕老师的基础视频我们知道,按照流中元素的基本类型,流分为字节流和字符流两种:

字节流:以字节为流中元素的基本类型,每次读写的最小单位是一个字节,字节输入流类时InputStream类及其子类,字节输出流类是OutputStream类及其子类。

字符流:以字符为流中元素的基本类型,每次读写的最小单位是一个字符,在java中,是2字节的Unicode码。字符输入流是Reader类及其子类,字符输出流类是Writer类及其子类。

1、FileInputStream类实现对文件的读操作时的数据传输

FileInputStream类有两个常用的构造方法,FileInputStream(String name)和FileInputStream(File file),并提供int read()、int read(byte[] b) 和int read(byte[] b,int off,int len)这几个常用的方法用于读取输入流中的数据。

2、FileOutputStream类实现对文件的写入操作时的数据传输

FileOutputStream类的常用构造方法有FileOutputStream(File file)、FileOutputStream(String name)和FileOutputStream(String name,booleanappend),其中,FileOutputStream(String name,booleanappend)这个构造方法中的append参数指定是否以添加的方式写入,为true时数据添加至原文末尾(即续写),为false时数据从文件开始处写入数据(覆盖重写),默认为false。所以这里就必须注意了,在使用FileOutputStream的构造函数数时,若指定的文件不存在,则系统会新建一个文件后往文件里写入数据。若文件已经存在,当append取false时,会从头开始写入数据,这样会导致原有数据的丢失。FileOutputStream类提供write(int b)、write(byte[] b)和write(byte[] b,int off,int len)这几个将数据写入流中的方法。

3、BufferedInputStream与BufferedOutputStream能够提供高效的字节流数据的读取与写入操作。

4、字节流还包括数据字节流、对象字节流和管道字节流(拓展知识)

(1)、数据字节流:java将基本数据类型数据的读写封装成了数据字节流,数据字节输入流DataInputStream类和数据字节输出流DataOutputStream类直接提供读写8种数据类型数据的方法。

(2)、对象字节流:对记录式文件进行读写操作,可以利用对象输入流ObjectInputStream类和对象输出流ObjectInputStream类以对象为单位读取或写入一个对象。

(3)、管道字节流:数据可以在内存的两个对象之间流动,管道流提供在对象之间传输数据的基本手段。管道输入流与输出流均可以是字节流,也可以是字符流。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class BufferedReaderAndWriter {

	public static void main(String[] args) throws IOException {
		new BufferedReaderAndWriter("BufferedReaderAndWriter.java", "BufferedReaderAndWriter2.txt");
		copyByteFile();
	}
	private static String resFile;//文件名
	private static String disFile;//拷贝后的文件名
	BufferedReaderAndWriter(String resFile,String disFile){
		BufferedReaderAndWriter.resFile = resFile;
		BufferedReaderAndWriter.disFile = disFile;
	}
	public static  void copyByteFile() throws IOException{

		BufferedReader bufr = new BufferedReader(new FileReader(resFile));//创建文件读取流对象
		BufferedWriter bufw = new BufferedWriter(new FileWriter(disFile));////创建文件写入流对象
		String buf = null;//字符缓冲区
		while ((buf = bufr.readLine())!=null) {
			bufw.write(buf);//写入数据
			bufw.newLine();//换行
			bufw.flush();//刷新bufw的缓冲区
		}
		bufr.close();//关闭读取流
		bufw.close();//关闭写入流
	}
}


总结:流分为字节流和字符流两种



----------android培训java培训、java学习型技术博客、期待与您交流!----------

 

内容概要:本文档为成都科洛威尔科技有限公司生产的MIL-1394B仿真板卡的API函数使用手册,详细介绍了该板卡在Windows和Linux环境下进行MIL-1394B/AS5643总线协议仿真和测试所需的API函数、数据结构、使用程及例程。板卡支持CC(控制计算机)、RN(远程节点)和BM(总线监控)三种工作模式,提供丰富的函数用于设备管理、节点控制、消息收发、故障注入、中断处理等功能,并涵盖数据包格式、发送接收程、错误检测机制等关键技术细节。手册还提供了函数调用示例和典型应用场景,帮助开发者快速掌握板卡的开发与调试。; 适合人群:从事航空电子、嵌入式系统或工业自动化领域,具备C/C++编程基础并熟悉总线通信协议的1-3年工作经验的软硬件研发工程师。; 使用场景及目标:①在复杂总线环境中实现高精度数据仿真与测试;②开发基于MIL-1394B协议的通信系统;③进行消息收发控制、时序偏移管理、错误注入测试及中断响应处理等高级功能验证;④通过API调用实现对板卡工作模式、数据、状态监测的全面控制。; 阅读建议:建议结合配套的demo示例程序进行实践,重点理解各函数的调用时序与参数配置逻辑,尤其关注STOF时序控制、消息发送模式、错误注入机制等核心功能的实现原理。使用前需仔细阅读“基本使用程”与“附录”部分,确保正确配置硬件环境与通信参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值