JAVA——常见IO流的使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/KevinWu93/article/details/50520854
import java.io.*;

/**
 * 
 * @author KevinWu 文件操作示例
 *
 */
public class FileHandle {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		FileHandle myFileHandle = new FileHandle();
		myFileHandle.readTxtFile("a.txt");
		myFileHandle.copyTxtFile("a.txt", "b.txt");
		myFileHandle.copyNonTxtFile("111.pdf", "222.pdf");
		myFileHandle.outPut("测试输出字符串", "test.txt");
		myFileHandle.creatFolder(".", "我是新建的文件夹");// 路径给点,表示当前目录
	}

	/**
	 * 方法作用:读取文本文件的方法 参数:待读取文件的路径
	 */
	public void readTxtFile(String file_dir) {
		// 创建并实例化文件对象
		File myFile = new File(file_dir);
		// 判断该对象对应的路径下是不是存在这个文件和是不是文件类型
		if (!myFile.exists() || !myFile.isFile()) {
			System.out.println("文件不存在或不是文件类型");
		} else {
			// 新建FileReader对象
			FileReader myFileReader = null;
			// 新建BufferedReader对象
			BufferedReader myBufferedReader = null;
			try {
				// 实例化FileReader对象
				myFileReader = new FileReader(myFile);
				// 实例化BufferedReader对象
				myBufferedReader = new BufferedReader(myFileReader);
				// 定义一个字符串来接收文件的一行内容
				String str = "";
				while ((str = myBufferedReader.readLine()) != null) {
					// 把读取到的内容输出
					System.out.println(str);
				}
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
				// 在这里关闭缓冲流和输入流,注意要一层一层关
				if (myBufferedReader != null) {
					try {
						myBufferedReader.close();
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
				if (myFileReader != null) {
					try {
						myFileReader.close();
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
			}
		}
	}

	/**
	 * 方法作用:复制文本文件方法 参数1:待复制的文件的路径 参数2:复制目标的文件的路径
	 */
	public void copyTxtFile(String f_dir, String t_dir) {
		// 创建并实例化文件对象
		File fFile = new File(f_dir);
		File tFile = new File(t_dir);
		// 先判断源文件存不存在和是不是文件类型,就不考虑文件是否可读的问题了
		if (!fFile.exists() || !fFile.isFile()) {
			System.out.println("文件不存在或者不是文件类型");
		} else {
			// 创建FileReader对象
			FileReader myFileReader = null;
			// 创建FileWriter对象
			FileWriter myFileWriter = null;
			// 创建BufferedReader和BufferedWriter对象
			BufferedReader myBufferedReader = null;
			BufferedWriter myBufferedWriter = null;
			try {
				// 实例化FileReader和BufferedReader对象
				myFileReader = new FileReader(fFile);
				myBufferedReader = new BufferedReader(myFileReader);
				// 实例化FileWriter和BufferedWriter对象
				myFileWriter = new FileWriter(tFile);
				myBufferedWriter = new BufferedWriter(myFileWriter);
				// 用一个字符串接受数据
				String str = "";
				while ((str = myBufferedReader.readLine()) != null) {
					myBufferedWriter.write(str);
					// 换行
					myBufferedWriter.newLine();
					// 刷新缓冲流
					myBufferedWriter.flush();
				}
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
				if (myBufferedWriter != null) {
					try {
						myBufferedWriter.close();
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
				if (myFileWriter != null) {
					try {
						myFileWriter.close();
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
				if (myBufferedReader != null) {
					try {
						myBufferedReader.close();
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
				if (myFileReader != null) {
					try {
						myFileReader.close();
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
			}
		}
	}

	/**
	 * 方法作用:复制非文本文件方法 参数1:待复制文件的路径 参数2:复制目标文件的路径
	 */
	public void copyNonTxtFile(String f_dir, String t_dir) {
		File fFile = new File(f_dir);
		File dFile = new File(t_dir);
		if (!fFile.exists() || !fFile.isFile()) {
			System.out.println("文件.....");
		} else {
			FileInputStream fis = null;
			FileOutputStream fos = null;
			BufferedInputStream bis = null;
			BufferedOutputStream bos = null;
			try {
				fis = new FileInputStream(fFile);
				fos = new FileOutputStream(dFile);
				bis = new BufferedInputStream(fis);
				bos = new BufferedOutputStream(fos);
				byte b[] = new byte[1024];
				int length;
				while ((length = bis.read(b)) != -1) {
					bos.write(b, 0, length);
					bos.flush();
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} finally {
				if (bos != null) {
					try {
						bos.close();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
				if (fos != null) {
					try {
						fos.close();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
				if (bis != null) {
					try {
						bis.close();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
				if (fis != null) {
					try {
						fis.close();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}

		}
	}

	/**
	 * 方法作用:把字符串内容输出到文本文件 参数1:待输出的字符串 参数2:目标文件路径
	 */
	public void outPut(String dstStr, String f_dir) {
		File fFile = new File(f_dir);
		try {
			FileWriter myFileWriter = new FileWriter(fFile, true);// 设置为追加
			PrintWriter pw = new PrintWriter(myFileWriter);
			pw.println(dstStr);
			// 方便起见直接在这里关闭了
			pw.close();
			myFileWriter.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * 创建文件夹 参数1:待创建的文件夹的路径 参数2:待创建的文件夹的名称
	 */
	public void creatFolder(String f_dir, String f_name) {
		File fDir = new File(f_dir + "/" + f_name);
		if (fDir.exists()) {
			System.out.println("文件夹已经存在");
		} else {
			fDir.mkdirs();// 创建文件夹,如果父目录不存在一并创建
		}
	}

}

猜你喜欢

转载自blog.csdn.net/KevinWu93/article/details/50520854
今日推荐