java 文件操作相关例子
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class FileOperation { public static void main(String[] args) { // 新建目录 File folderPath = new File("D:\\ReadFileTest\\FileOperation"); try { if (!folderPath.exists()) { folderPath.mkdir(); // 新建目录 } } catch (Exception e) { System.out.println("新建目录操作出错"); e.printStackTrace(); } // 新建文件 File filePath = new File("D:\\ReadFileTest\\FileOperation\\FileOperation.txt"); try { if (!filePath.exists()) { filePath.createNewFile(); // 新建文件 } } catch (Exception e) { System.out.println("新建文件操作出错"); e.printStackTrace(); } // // 删除文件 // File delFilePath = new // File("D:\\ReadFileTest\\FileOperation\\FileOperation.txt"); // try { // delFilePath.delete(); // } catch (Exception e) { // System.out.println("删除文件操作出错"); // e.printStackTrace(); // } // // 删除空文件夹(文件夹不为空不会进行删除) // File delFolderPath = new File("D:\\ReadFileTest\\FileOperation"); // try { // delFolderPath.delete(); // 删除空文件夹 // } catch (Exception e) { // System.out.println("删除文件夹操作出错"); // e.printStackTrace(); // } // // 删除一个文件夹下所有的文件(夹) // File delfile = new File("D:\\ReadFileTest\\FileOperation"); // File[] files = delfile.listFiles(); // System.out.println(files.length); // for (int i = 0; i < files.length; i++) { // if (!files[i].isDirectory()) { // files[i].delete(); // } // } // FileWriter写文件(无缓冲直接写入) FileWriter fileWriter = null; try { fileWriter = new FileWriter(filePath); fileWriter.write("test2"); fileWriter.close(); } catch (IOException e) { System.out.println("写文件操作出错"); e.printStackTrace(); } finally { if (fileWriter != null) { try { fileWriter.close(); } catch (IOException e) { e.printStackTrace(); } } } // FileReader读文件(不能一行行读,只能以一个或指定多个字符读取) FileReader fileReader = null; try { fileReader = new FileReader(filePath); char[] cbuf = new char[10]; try { fileReader.read(cbuf); } catch (IOException e) { e.printStackTrace(); } System.out.println("cbuf == " + cbuf[0]); // "t" } catch (FileNotFoundException e) { e.printStackTrace(); } finally { try { fileReader.close(); } catch (IOException e) { e.printStackTrace(); } } // BufferedReader读文件(能一行行读,只能以一个或指定多个字符读取)(拥有8192字符的缓冲区)(以字符流的形式读取数据) try { fileReader = new FileReader(filePath); } catch (FileNotFoundException e1) { e1.printStackTrace(); } BufferedReader bufferedReader = new BufferedReader(fileReader); String readerValue; try { while (true) { readerValue = bufferedReader.readLine(); if (readerValue == null) { break; } System.out.println("readerValue == " + readerValue); } } catch (IOException e) { e.printStackTrace(); } finally { try { bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); } } // BufferedWriter读文件(不能一行行读,只能以一个或指定多个字符读取)(拥有8192字符的缓冲区) try { fileWriter = new FileWriter(filePath); } catch (IOException e) { e.printStackTrace(); } BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); try { bufferedWriter.write("hello world !"); bufferedWriter.newLine(); bufferedWriter.newLine(); bufferedWriter.write("!hello world !"); bufferedWriter.write("!hello world !"); // 使用缓冲区中的方法,将数据刷新到目的地文件中去。 bufferedWriter.flush(); // 关闭缓冲区,同时关闭了fw流对象 bufferedWriter.close(); } catch (IOException e) { e.printStackTrace(); } // FileInputStream读文件(以字节流的形式读取数据) FileInputStream fileInputStream = null; try { fileInputStream = new FileInputStream(filePath); try { int readData = fileInputStream.read(); System.out.println("readData == " + readData); byte[] b = new byte[2]; fileInputStream.read(b); System.out.println("b == " + b[0]); } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } finally { try { fileInputStream.close(); } catch (IOException e) { e.printStackTrace(); } } // FileOutputStream写文件(以字节流的形式写入数据) FileOutputStream fileOutputStream = null; try { fileOutputStream = new FileOutputStream(filePath); byte[] buf = new byte[] { 96, 0x77, 96 }; try { fileOutputStream.write(buf); } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } finally { try { fileOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } } // InputStreamReader字节流向字符流的转换 InputStreamReader inputStreamReader = null; try { fileInputStream = new FileInputStream(filePath); } catch (FileNotFoundException e) { e.printStackTrace(); } inputStreamReader = new InputStreamReader(fileInputStream); char[] charBuf = new char[10]; try { inputStreamReader.read(charBuf); System.out.println("charBuf = " + charBuf[0]); } catch (IOException e) { e.printStackTrace(); } finally { try { inputStreamReader.close(); } catch (IOException e) { e.printStackTrace(); } } // OutputStreamWriter 字节流向字符流的转换 OutputStreamWriter outputStreamWriter = null; try { fileOutputStream = new FileOutputStream(filePath); } catch (FileNotFoundException e) { e.printStackTrace(); } outputStreamWriter = new OutputStreamWriter(fileOutputStream); try { outputStreamWriter.write("OutputStreamWriter"); } catch (IOException e) { e.printStackTrace(); } finally { try { outputStreamWriter.close(); } catch (IOException e) { e.printStackTrace(); } } } }
参考原文: http://www.cnblogs.com/chen111/archive/2012/06/16/2551997.html
参考原文: http://uujava0322.iteye.com/blog/1045876
参考原文: http://blog.csdn.net/miyuki0424/article/details/307904
参考原文: http://xyiyy.iteye.com/blog/361476
参考原文: http://blog.csdn.net/liuhenghui5201/article/details/8279557
参考原文: http://blog.sina.com.cn/s/blog_70e5bf6e0101dwsd.html
参考原文: http://blog.csdn.net/liuhenghui5201/article/details/8292552