java_24 FileOutputStream类和FileInputStream类

1.OutputStream 和InputStream

  输入和输出:1.参照物都是java程序来惨遭

        2.Input输入,持久化上的数据----》内存

        3.Output输出,内存---》硬盘

  字节输出流:

    OutputStream:

      定义:流按照方向可以分为输入和输出流,字节流可以操作任何数据,字符流只能操作纯字符数据。

      IO流父类:OutputStream和InputStream

  IO流程序书写步骤:

       1.先导包

       2.进行异常处理

       3.释放资源

2FileOutputStream

  是OutputStream的子类

  1.1文件输出流是用于将数据写入 FileFileDescriptor 的输出流。

  1.2.创建流

public class Demo {
	public static void main(String[] args) throws Exception {
		/*  步骤   1创建流 子类对象  绑定数据目的
		 *      2 调用write() 方法
		 *      3 close 关闭资源
		 * 
		 * */
		FileOutputStream fos = new FileOutputStream("d:\aaa.txt");
		//	      调用write() 方法  写一个字节
		fos.write(97);
		// 	 写字节数组	
		byte[] b = {65,66,67,68};
		fos.write(b);
		//    写字节数组的一部分
		fos.write(b,1,2);
		//2.3写字符串   getBytes()  字符串转字节
		fos.write("hello world".getBytes());
		//关闭资源
		fos.close();
	}
}

   文件的换行和续写,即每次刷新程序,都会在原有的基础上重新添加数据

public class Demo {
	public static void main(String[] args) throws Exception {
		/*
		 * 换行和续写
		 */
		File file = new File("d:\b.txt");
		FileOutputStream fos = new FileOutputStream(file,true);
		fos.write("hello
".getBytes());
		fos.write("world\r
".getBytes());
		//关闭流
		fos.close();
	}
}

 3FileInputStream流

  是InputStream的子类

  2.1FileInputStream 从文件系统中的某个文件中获得输入字节。

  2.2创建流

    字符读取(读取速度慢)

public class Demo {
	public static void main(String[] args){
		// 1创建字节输入流的子类对象
		//2 调用方法读取 read
		//3 关闭资源
		try {
			FileInputStream fis = new FileInputStream("d:\aaa.txt");
			int len = 0;
			while((len=fis.read())!=-1) {
				System.out.print((char)len);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}

     字节数组读取(读取速度快)

public class Demo {
	public static void main(String[] args){
		// 1创建字节输入流的子类对象
		//2 调用方法读取 read
		//3 关闭资源
		try {
			FileInputStream fis = new FileInputStream("d:\aaa.txt");
			//创建字节数组
			byte[] b = new byte[1024];
			int len = 0;
			while((len = fis.read(b))!=-1) {
				System.out.println(new String(b,0,len));
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
原文地址:https://www.cnblogs.com/smxbo/p/10698386.html