Javaio

简单的文件读写

package com.file;

import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

public class ReadWriteFile {
	public static void main(String[] args) throws Exception {
		ReadWriteFile file = new ReadWriteFile();
		file.prepareReadFile("f:/java/javaee/luo", "age.txt");

		File file2 = new File("f:/java/javaee/luo/age2.txt");
		/**
		 * System.getProperty("file.encoding") 获得当前系统的字符编码
		 */
		System.out.println(file.readFile(file2, System
				.getProperty("file.encoding")));

		file.writeFile(new File("f:/java/javaee/luo/age.txt"), System
				.getProperty("file.encoding"), file.readFile(file2, System
				.getProperty("file.encoding")));

		file.deleteFile(new File("f:/java/javaee/luo/age3.txt"));

		file.binaryReadWrite("F:/java/Kalimba.mp3", "F:/java/javaee/luo",
				"music", "Kalimba1.mp3");
		file.fileReadWrite("f:/java/javaee/luo/aa.txt", "f:/java/javaee/luo",
				"luo.txt");
	}

	/**
	 * 读取并复制二进制文件
	 * 
	 * @throws IOException
	 */
	public void binaryReadWrite(String file, String file2, String music,
			String filename) throws IOException {
		InputStream inputStream = null;
		OutputStream outputStream = null;
		File file3 = new File(file2 + "/" + music);
		file3.mkdir();
		try {
			inputStream = new FileInputStream(new File(file));
			byte[] b = new byte[4 * 1024];
			outputStream = new FileOutputStream(file3 + "/" + filename);
			while (inputStream.read(b) != -1) {
				outputStream.write(b);
			}

		} catch (IOException e) {
			// TODO: handle exception
			System.out.println(e.getMessage());
			System.out.println(e);
		} finally {
			outputStream.flush();
			outputStream.close();
			inputStream.close();
		}
	}

	/**
	 * 读取文件
	 * 
	 * @param file
	 * @param encoding
	 * @return
	 * @throws IOException
	 */
	public String readFile(File file, String encoding) throws IOException {
		BufferedReader bufferedReader = null;
		try {
			bufferedReader = new BufferedReader(new InputStreamReader(
					new FileInputStream(file), encoding));
			StringBuffer buffer = new StringBuffer();
			char[] chars = new char[4096];
			int lenght = 0;
			while (0 < (lenght = bufferedReader.read(chars))) {
				buffer.append(chars, 0, lenght);
			}
			return buffer.toString();
		} finally {
			try {
				if (bufferedReader != null) {
					bufferedReader.close();
				}
			} catch (Exception e) {
				// TODO: handle exception
				throw new RuntimeException(e);
			}
		}
	}

	/**
	 * 写入文件
	 * 
	 * @param file
	 * @param encoding
	 * @param reader
	 * @throws IOException
	 */
	public void writeFile(File file, String encoding, String reader)
			throws IOException {
		BufferedWriter writes = null;
		try {
			writes = new BufferedWriter(new OutputStreamWriter(
					new FileOutputStream(file, false), encoding));
			writes.write(reader);
		} finally {
			if (writes != null) {
				writes.close();
			}
		}

	}

	/**
	 * 删除文件
	 * 
	 * @param file
	 */
	public void deleteFile(File file) {
		file.delete();
	}

	/**
	 * 读取写入文件
	 * 
	 * @param file1
	 * @param file2
	 * @param filename
	 * @throws IOException
	 */
	public void fileReadWrite(String file1, String file2, String filename)
			throws IOException {
		BufferedReader bufReader = null;
		InputStream iStream = null;
		BufferedOutputStream bWriter = null;
		File file = new File(file2, filename);
		if (!file.exists()) {
			file.createNewFile();
		}
		try {
			iStream = new FileInputStream(new File(file1));
			bufReader = new BufferedReader(new InputStreamReader(iStream));
			bWriter = new BufferedOutputStream(new FileOutputStream(file));
			String line = null;
			if ((line = bufReader.readLine()) != null) {
				bWriter.write(line.getBytes());
			}
		} catch (Exception e) {
			// TODO: handle exception
		} finally {
			bWriter.flush();
			bWriter.close();
			bufReader.close();
			iStream.close();
		}
	}

	/**
	 * 查看目录文件是否存在并新建
	 * 
	 * @param path
	 * @param filename
	 * @throws Exception
	 */
	public void prepareReadFile(String path, String filename) throws Exception {
		File folder = new File(path);
		File file = new File(path, filename);
		if (!folder.exists()) {
			System.out.println("新建目录和文件");
			folder.mkdirs();// 新建目录及其父目录
			file.createNewFile();// 新建文件
		} else if (!file.exists()) {
			System.out.println("新建文件");
			file.createNewFile();// 新建文件
		}
	}
}

  

原文地址:https://www.cnblogs.com/andicu/p/2668657.html