简单的javaIO操作

Java流的概念

流(Stream)是指在计算机的输入输出操作中各部件之间的数据流动。按照数据的传输方向,流可分为输入流与输出流。Java语言里的流序列中的数据既可以是未经加工的原始二进制数据,也可以是经过一定编码处理后符合某种特定格式的数据。Java提供了两种类型的输入输出流:一种是面向字节的流,数据的处理以字节为基本单位;另一种是面向字符的流,用于字符数据的处理。字节流(ByteStream每次读写8位二进制数,也称为二进制字节流或位流。字符流一次读写16位二进制数,并将其做一个字符而不是二进制位来处理。

Java I/O中流的层次结构如图:

简单的javaIO操作_第1张图片

针对一些频繁的设备交互,Java语言系统预定了3个可以直接使用的流对象,分别是:System.in(标准输入),通常代表键盘输入。

System.out(标准输出):通常写往显示器。

System.err(标准错误输出):通常写往显示器。

Java语言中使用字节流和字符流的步骤基本相同,以输入流为例,首先创建一个与数据源相关的流对象,然后利用流对象的方法从流输入数据,最后执行close()方法关闭流。


纯文本读取

public class Demo01 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//创建源
		File src =new File("E:/test/test.txt");
		//选择流
		Reader reader =null;
		try {
			reader =new FileReader(src);
			//读取操作
			char[] flush =new char[1024];
			int len =0;
			while(-1!=(len=reader.read(flush))){
				//字符数组转成 字符串
				String str =new String(flush,0,len);
				System.out.println(str);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			System.out.println("文件不存在");
		} catch (IOException e) {
			e.printStackTrace();
			System.out.println("文件读取失败");
		}finally{
			try {
				if (null != reader) {
					reader.close();
				}
			} catch (Exception e2) {
			}
		}
	}

}
写出文件

public class Demo02 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//创建源
		File dest =new File("E:test/test.txt");
		//选择流
		Writer wr =null;
		try {
			//追加文件,而不是覆盖文件
			wr =new FileWriter(dest);
			//写出
			String msg ="一本小破书\r\n一读一上午";
			wr.write(msg);
			wr.append("这是追加的内容 ");
			
			wr.flush();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}catch (IOException e) {
			e.printStackTrace();
		}finally{
			try {
				if (null != wr) {
					wr.close();
				}
			} catch (Exception e2) {
			}
		}
	}

}
纯文本的拷贝

public class CopyFileDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//创建源 仅限于 字符的纯文本
		File src =new File("E:/test/Demo03.java");
		File dest =new File("E:/test/test.txt");
		//选择流
		Reader reader =null;		
		Writer wr =null;
		try {
			reader =new FileReader(src);
			wr =new FileWriter(dest);
			//读取操作
			char[] flush =new char[1024];
			int len =0;
			while(-1!=(len=reader.read(flush))){
				wr.write(flush, 0, len);
			}
			wr.flush();//强制刷出
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			System.out.println("源文件不存在");
		} catch (IOException e) {
			e.printStackTrace();
			System.out.println("文件读取失败");
		}finally{
			try {
				if (null != wr) {
					wr.close();
				}
			} catch (Exception e2) {
			}
			try {
				if (null != reader) {
					reader.close();
				}
			} catch (Exception e2) {
			}
		}
	
	}

}
简单的javaIO操作_第2张图片



你可能感兴趣的:(I/O,学习笔记,Java基础)