Java学习笔记——File类文件管理及IO读写、复制操作
File类的总结:
1.文件和文件夹的创建
2.文件的读取
3.文件的写入
4.文件的复制(字符流、字节流、处理流)
5.以图片地址下载图片
文件和文件夹
相关函数
(boolean) mkdir() 创建此抽象路径名指定的目录
(boolean) mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
(boolean) delete() 删除此抽象路径名表示的文件或目录
(boolean) createNewFile() 当不存在此路径名指定名称的文件时,创建一个新的空文件。
(boolean) mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
(boolean) delete() 删除此抽象路径名表示的文件或目录
(boolean) createNewFile() 当不存在此路径名指定名称的文件时,创建一个新的空文件。
创建文件
public static void NewFile(String pathString) { File file = new File(pathString); if (!file.exists()) { try { if (file.createNewFile()) { System.out.println("文件创建成功"); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } else { System.out.println("文件已存在"); } }
创建文件夹
public static void NewFileBox(String pathString) { File file2 = new File(pathString); if (!file2.exists()) { if (file2.mkdirs()) { System.out.println("文件夹成功"); } } else { System.out.println("文件夹存在"); file2.delete();//销毁文件 } }
应用:
public static void main(String[] args) { NewFile("test/file.txt"); NewFileBox("test/a/a/a/a"); }
Writer写入文件
用FileWriter写入文件
public static void ForFileWriter(String string,String fileName) { File file = new File(fileName); try { FileWriter fWriter = new FileWriter(file); fWriter.write(string); fWriter.close(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } }
用BufferedWriter写入文件
public static void ForBufferedWriter(String string,String desFile) { BufferedWriter bWriter = null; try { bWriter = new BufferedWriter(new FileWriter(new File(desFile))); bWriter.write(string.toString()); bWriter.close(); } catch (Exception e) { e.printStackTrace(); } }
应用:
public static void main(String[] args) { ForFileWriter("用FileWriter写入文件", "test/writer1.txt"); ForBufferedWriter("用BufferedWriter写入文件", "test/writer2.txt"); }
Reader读取文件
用FileReader读取文件
public static void testReadByReader(String fileName){ File file = new File(fileName); FileReader fis = null; try { fis = new FileReader(file); char[] arr = new char[1024 * 1000 * 6]; int len = fis.read(arr); String data = new String(arr, 0, len); fis.close(); System.out.println(fileName+"中按FileReader读取的文件内容是:\n"+data); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
用FileInputStream读取文件
public static void testReadByInputStream(String fileName){ File file = new File(fileName); FileInputStream fis = null; try { fis = new FileInputStream(file); byte[] arr = new byte[1024 * 1000 * 6]; int len = fis.read(arr); String data = new String(arr, 0, len); fis.close(); System.out.println(fileName+"中按FileInputStream读取的文件内容是:\n"+data); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
用BufferedReader读取文件
public static void testReadByBufferedReader(String fileName) { BufferedReader bReader = null; String line = null; StringBuffer buffer = new StringBuffer(); try { bReader =new BufferedReader(new FileReader(new File(fileName))); while ((line = bReader.readLine())!=null) { buffer.append(line).append("\n"); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } System.out.println(fileName+"中按BufferedReader读取的文件内容是:\n"+buffer.toString()); }
应用:
public static void main(String[] args) { testReadByInputStream("res/我.txt"); testReadByReader("res/我.txt"); testReadByBufferedReader("res/我.txt"); }
文件的复制操作
字符流复制
public static void FileCopy1(String readfile,String writeFile) { try { FileReader input = new FileReader(readfile); FileWriter output = new FileWriter(writeFile); int read = input.read(); while ( read != -1 ) { output.write(read); read = input.read(); } input.close(); output.close(); } catch (IOException e) { System.out.println(e); } }
字节流复制
public static void FileCopy2(String readfile,String writeFile) { try { FileInputStream input = new FileInputStream(readfile); FileOutputStream output = new FileOutputStream(writeFile); int read = input.read(); while ( read != -1 ) { output.write(read); read = input.read(); } input.close(); output.close(); } catch (IOException e) { System.out.println(e); } }
处理流复制
public static void FileCopy3(String readfile,String writeFile) { BufferedReader bReader = null; BufferedWriter bWriter = null; String line = null; try { bReader = new BufferedReader(new FileReader(new File(readfile))); bWriter = new BufferedWriter(new FileWriter(new File(writeFile))); while ((line = bReader.readLine())!=null) { bWriter.write(line); bWriter.newLine(); } bWriter.close(); bReader.close(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } }
应用:
public static void main(String[] args) { FileCopy1("res/我.txt", "test/1.txt"); FileCopy2("res/我.txt", "test/2.txt"); FileCopy3("res/我.txt", "test/3.txt"); FileCopy2("res/me.jpg", "test/33.jpg"); }
源码下载: