使用IO流优雅地实现文件的写入和读取

文件的写入:

示例代码:

package com.gx.demo;

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

public class Test1 {
	/**
	 * 保存写入内容到文件
	 * @param filepath	文件的位置
	 * @param content	文件的内容
	 * @param encoding	文件的编码
	 * @return
	 * 注意:这种写入只适用将内容写入空的目标文件,若是目标文件已有内容,将会被写入的内容覆盖,请慎用!
	 */
	public static boolean saveFile(String filepath, String content,	String encoding) {
		boolean flag = false;
		FileOutputStream fileOutputStream = null;
		try {
			fileOutputStream = new FileOutputStream(new File(filepath));
			fileOutputStream.write(content.getBytes(encoding));
			fileOutputStream.close();
			flag = true;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (fileOutputStream != null) {
				try {
					fileOutputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		System.out.println(flag);
		return flag;
	}
	
	public static void main(String[] args) {
		saveFile("F:\\aaaa.txt","这是测试文字","UTF-8");
	}	
	
}

文件的读取:

示例代码:

package com.gx.demo;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

public class Test2 {
	/**
	 * 获取指定文件的内容 filePath 文件的路径,注意要具体到文件,不能是文件夹
	 * @param filePath	文件路径
	 * @return
	 */
	public static String getFile(String filePath) {
		File file = new File(filePath);// 注意要具体到文件,不能是文件夹
		InputStreamReader read = null;
		String content = "";// 临时容器,存储之前读取的内容
		try {
			read = new InputStreamReader(new FileInputStream(file), "UTF-8");
			BufferedReader bufferedReader = new BufferedReader(read);
			String lineTxt = null;
			// 遍历读取的内容
			while ((lineTxt = bufferedReader.readLine()) != null) {
				// content=之前读取的内容+最后读取的内容
				content = content + lineTxt + "\r\n";
				// 上面这句若是不能理解,你看下面这句的效果就明白了
				// content = lineTxt;
			}
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (read != null) {
					read.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		System.out.println(content);// 打印内容到控制台
		return content;
	}

	public static void main(String[] args) {
		getFile("F:/aaaa.txt");
	}
	
}

注意:
  在Java编程过程中,如果打开了外部资源(文件、数据库连接、网络连接等),我们必须确保在这些外部资源使用完毕后,手动关闭它们。如果我们编程时没有在正确的时机获取忘记关闭外部资源,就会导致外部资源泄露,紧接着就会出现文件被异常占用,数据库连接过多导致连接池溢出等诸多严重的问题。所以我们在使用外部资源时,要养成关闭外部资源的习惯。

猜你喜欢

转载自blog.csdn.net/weixin_44563573/article/details/103197304
今日推荐