IO流的输入输出操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40301026/article/details/87869205

IO流的所谓输入输出是站在程序的角度去看。文件数据到程序就是输入,反之就是输出。

最基本(基础)的写法套路:

                                            1.创建源(源文件)

                                             2.选择流(FileInputStream、FileOutputStream)

                                             3.操作(选择输入或是输出)

                                             4.释放。(  void close();   关闭该流并释放与之相关的所有资源

下面来两个示例:

                                            

            一个一个字节或字符的去读取或输入。

1.输入流

(1)写入了文件地址创建源src,  (2)is = new FileInputStream(src);传入源src构建输入流is; (3) is.read();是从输入流中去读一个数据字节,比如'h'就是104(GBK字符集中),通过一个while()循环,将输入流中的数据输出(为了验证我们操作成功)。(4) is.close();   关闭该流并释放与之相关的所有资源.注意不是此代码直接关闭的,而是其通知操作系统,然后操作系统去释放相关资源的。

哪里不懂,勤于查看API。

package cn.liu.io2;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

public class IOTset02 {
	public static void main(String[] args) {
		//1、创建源
		File src = new File("nnn.txt");
	
		//2、选择流
		InputStream is =null;
        try
        {
			is = new FileInputStream(src);
			
			//3、操作(读取)
			int temp = -1;
			while((temp = is.read())!=-1) {
				System.out.println((char)temp);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			//4、释放资源
			try {
				if(is!=null) {
					is.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	

}

         

2.输出流:

package cn.liu.io2;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class IOTest04 {
	public static void main(String[] args) {
		//1.创建源
		File src = new File("dest.txt");
		
		OutputStream os = null;
		try {
			//2.选择流
			os = new FileOutputStream(src);
			//os = new FileOutputStream(src,true);//true就是追加内容,flase就是从头写
			
			//3.操作(输出,写出)
			String msg = "sdjdccw";  //要输出的内容(实验验证)
			byte[] datas = msg.getBytes();//字节->字符串
			os.write(datas,0,datas.length);
			os.flush();//刷新
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			//4.释放资源
			if(os!=null) {
				try {
					os.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		
	}
}

猜你喜欢

转载自blog.csdn.net/qq_40301026/article/details/87869205