欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识

3、Java I/O 用途与对应 劳务派遣信息管理系统 的流一览 注:粗体为节点流

点击: 次  来源:宝鼎软件 时间:2017-09-22

原文出处: 斯武丶风晴

Java尺度I/O常识体系图:

 3、Java I/O 用途与对应 劳务调派信息打点系统 的流一览 注:粗体为节点流

 3、Java I/O 用途与对应 劳务调派信息打点系统 的流一览 注:粗体为节点流

 3、Java I/O 用途与对应 劳务调派信息打点系统 的流一览 注:粗体为节点流

1、I/O是什么?

I/O 是Input/Output(输入、输出)的简称,输入流可以领略为向内存输入,输出流是从内存输出。

2、流

流是一个持续的数据流,可以从流中读取数据,也可以往流中写数据。流与数据源,或数据源流向的前言相关联。

Java IO流中,流可以是字节约,也可以是字符流。

3、Java I/O 用途与对应的流一览

 3、Java I/O 用途与对应 劳务调派信息打点系统 的流一览 注:粗体为节点流

注:粗体为节点流。蓝色为转换流(字节约转为字符流)。

4、流的处理惩罚

流分节点流和处理惩罚流两种。

节点流:可以从或向一个特定的处所(节点)读写数据。如FileInputStream、FileReader。

处理惩罚流:是对一个已存在的流的毗连和封装,通过所封装的流的成果挪用实现数据读写。如BufferedReader.处理惩罚流的结构要领老是要带一个其他的流工具做参数。一个流工具颠末其他流的多次包装,称为流的链接

5、文件会见

(1)读取文件

假如你需要在差异端利用读取文件,你可以按照你要读的文件是二进制文件照旧文本文件,可能按照你要处理惩罚的数据是筹备采纳字节方法照旧字符方法,抉择利用 FileInputStream 可能 FileReader。两者支持你从文件开头开始到文件末了读取一个字节可能字符,也可以将读取的多个字节或字符,写入到内存的字节数组或字符数组。

单字节读取文件示例:

public static void readFileAsByte() throws IOException {
		String filepath = "file.bin";
		java.io.InputStream is = null;
		try {
			is = new FileInputStream(filepath);
			int data = -1;
			while ((data = is.read()) != -1) {// -1 暗示读取达到文件末了
				//操纵数据
				System.out.print((byte)data + " ");
			}
		} finally {
			if (is != null) {
				is.close();// 封锁流
			}
		}
	}

字节数组读取文件示例:

public static void readFileAsByteArray() throws IOException {
	String filepath = "file.bin";
	java.io.InputStream is = null;
	try {
		is = new BufferedInputStream(new FileInputStream(filepath));// 组装BufferedInputStream流,插手缓冲本领
		byte[] data = new byte[256];
		int len = -1;
		while ((len = is.read(data)) != -1) {// -1 暗示读取达到文件末了
			//操纵数据
			for (int i = 0; i < len; i++) {
				System.out.print(data[i] + " ");
			}
		}
	} finally {
		if (is != null) {
			is.close();// 封锁流
		}
	}
}

单字符读取文件示例:

public static void readFileAsChar() throws IOException {
	String filepath = "file.txt";
	java.io.Reader r = null;
	try {
		r = new FileReader(filepath);
		int data = -1;
		while ((data = r.read()) != -1) {// -1 暗示读取达到文件末了
			//操纵数据
			System.out.print((char) data);
		}
	} finally {
		if (r != null) {
			r.close();// 封锁流
		}
	}
}

字符数组读取文件示例:

public static void readFileAsCharArray() throws IOException {
	String filepath = "file.txt";
	java.io.Reader r = null;
	try {
		r = new BufferedReader(new FileReader(filepath));// 组装BufferedReader流,插手缓冲本领
		char[] data = new char[256];
		int len = -1;
		while ((len = r.read(data)) != -1) {// -1 暗示读取达到文件末了
			//操纵数据
			for (int i = 0; i < len; i++) {
				System.out.print(data[i]);
			}
		}
	} finally {
		if (r != null) {
			r.close();// 封锁流
		}
	}
}

(2)写入文件

与读取文件雷同:

假如你需要在差异端利用写入文件,你可以按照你要写的文件是二进制文件照旧文本文件,可能按照你要处理惩罚的数据是筹备采纳字节方法照旧字符方法,抉择利用 FileOutputStream 可能 FileWriter。两者支持你可以一次写入一个字节可能字符到文件中,也可以直接写入一个字节数组可能字符数据。数据凭据写入的顺序存储在文件傍边。

单字节写入文件示例:

public static void writeFileAsByte() throws IOException {
	String filepath = "file.bin";
	java.io.OutputStream os = null;
	try {
		os = new FileOutputStream(filepath);
		os.write('1');
		os.write('2');
		os.write('3');
		os.write('4');
		os.flush();// 把缓冲区内的数据刷新到磁盘
		
	} finally {
		if (os != null) {
			os.close();// 封锁流
		}
	}
}