I/O输入输出流

I/O流的分类:
流向:输入流 是读取数据的
输出流 是写入数据的
数据类型:
字节流
字节输入流 读取数据 InputStream
字节数出流 写入数据 OutputStream
字符流:
字符输入流,读取数据 Reader
字符输出流,写入数据 Writer
一般我们在探讨IO流的时候,如果没有明确说明哪种分类,默认情况下按照数据类型来分。

FileOutputStream 的构造器
FileOutputStream(File file) //创建文件输出流以写入指定的File对象表示的文件。
FileOutputStream(String name) //创建文件输出流以指定的名称写入文件
FileOutputStream(File file , boolean append) //创建文件输出流以写入由指定的File对象表示的文件,默认是false , 默认是不追加文字在末尾。

举个栗子:
需求:在文本文件中写入两句话:“山穷水尽疑无路,柳暗花明又一村”。

分析: 字节流输出的操作步骤
A. 创建文字输出流对象
B. 写数据
C. 释放资源

//在博客输写的在此省略一些导包了
public class FileOutputStreamDemo{
		public static void main(String[] args) throws IOException {
					File f = new File("fos.txt");
					FileOutputStream fso = new FileOutputStream(f); //自动帮你创建了文件,括号(f,true)这样写则可以追加到文本文字的末尾。
					fos.write("山穷水尽疑无路,柳暗花明又一村".getBytes());  //默认是false,	
					fos.close();
					//一定要关闭close. 让流对象变成垃圾,被垃圾回收器回收,通过系统去释放文件相关的资源

} 
}

字节数出流操作步骤:
1.创建字节数出流对象
2.调用write()方法
3.释放资源

public void write(int b); 写一个字节
public void write(byte[] b);写一个字节数组
public void write(byte[] b, int off,int len); 写一个字节数组的一部分

public class FileOutputStreamDemo2{
			public static void main(String[] args) throws IOException {
    OutputStream os = new FileOutputStream("fos.txt",false); //多态
	byte[] bs = {97,88,41,36,77,127};
  //os.write(97);
  //os.write(bs);
   os.write(bs,0,bs.length); //len是字节的长度 off字节数组的起始下标。
   os.close();
   }
    }

//输出结果是 :aX)$M

猜你喜欢

转载自blog.csdn.net/u012968827/article/details/82872147