Java中 IO 常用操作

本文主要介绍 Java IO 中几个常见的操作,读取字符,写入字符,复制文件,复制文件夹等。

 直接上代码啦,下面代码都没有判断 File 是否存在


  1. package com.liuyanzhao.file;  
  2.   
  3. import java.io.*;  
  4.   
  5. /** 
  6.  * @author 言曌 
  7.  * @date 2017/10/21 下午3:31 
  8.  */  
  9.   
  10. public class Demo {  
  11.   
  12.     /** 
  13.      * 创建文件 
  14.      * @param file 文件 
  15.      */  
  16.     public static void createFile(File file) {  
  17.         try {  
  18.             file.createNewFile();  
  19.         } catch (IOException e) {  
  20.             e.printStackTrace();  
  21.         }  
  22.     }  
  23.   
  24.   
  25.     /** 
  26.      * 删除文件 
  27.      * @param file 文件 
  28.      */  
  29.     public static void deleteFile(File file) {  
  30.         file.delete();  
  31.     }  
  32.     /** 
  33.      * 根据字节流读取文件内容 
  34.      * @param file 文件 
  35.      */  
  36.     public static void readFileByInputStream(File file) {  
  37.         try {  
  38.             FileInputStream fis = new FileInputStream(file);  
  39.             int length;  
  40.             byte[] buf = new byte[1024];  
  41.             while ((length = fis.read(buf)) != -1) {  
  42.                 System.out.print(new String(buf, 0, length));  
  43.             }  
  44.             fis.close();  
  45.         } catch (FileNotFoundException e) {  
  46.             e.printStackTrace();  
  47.         } catch (IOException e) {  
  48.             e.printStackTrace();  
  49.         }  
  50.     }  
  51.   
  52.     /** 
  53.      * 根据字符流读取文件内容 
  54.      * 
  55.      * @param file 文件 
  56.      */  
  57.     public static void readFileByReader(File file) {  
  58.         try {  
  59.             FileReader reader = new FileReader(file);  
  60.             char[] buf = new char[1024];  
  61.             int length;  
  62.             while ((length = reader.read(buf)) != -1) {  
  63.                 System.out.print(new String(buf, 0, length));  
  64.             }  
  65.         } catch (FileNotFoundException e) {  
  66.             e.printStackTrace();  
  67.         } catch (IOException e) {  
  68.             e.printStackTrace();  
  69.         }  
  70.     }  
  71.   
  72.     /** 
  73.      * 往文件中写入内容(直接覆盖) 
  74.      * @param file 文件 
  75.      * @param content 
  76.      */  
  77.     public static void writeByWriter(File file, String content) {  
  78.         try {  
  79.             FileWriter writer = new FileWriter(file);  
  80.             writer.write(content);  
  81.             writer.close();  
  82.         } catch (IOException e) {  
  83.             e.printStackTrace();  
  84.         }  
  85.     }  
  86.   
  87.     /** 
  88.      * 往文件中写入内容(直接覆盖) 
  89.      * @param file 
  90.      * @param content 
  91.      */  
  92.     public static void writeByOutputStream(File file, String content) {  
  93.         try {  
  94.             FileOutputStream fos = new FileOutputStream(file);  
  95.             fos.write(content.getBytes());  
  96.             fos.close();  
  97.         } catch (FileNotFoundException e) {  
  98.             e.printStackTrace();  
  99.         } catch (IOException e) {  
  100.             e.printStackTrace();  
  101.         }  
  102.     }  
  103.       
  104.     public static void main(String args[]) {  
  105. //        File file = new File("/Users/liuyanzhao/Desktop/demo.txt");  
  106. ////        readFileByInputStream(file);  
  107. ////        readFileByReader(file);  
  108. ////        writeByOutputStream(file,"hello saysky");  
  109. ////        writeByWriter(file,"hello java");  
  110.   
  111.         File file = new File("/Users/liuyanzhao/Desktop");  
  112.         for(File file1: file.listFiles()) {  
  113.             System.out.println("名称:"+file1.getName());  
  114.             System.out.println("是否存在:"+file1.exists());  
  115.             System.out.println("绝对路径:"+file1.getAbsolutePath());  
  116.             System.out.println("父级目录:"+file1.getParent());  
  117.             System.out.println("大小:"+file1.length()/1000+"kB");  
  118.         }  
  119.     }  
  120. }  

上面的代码只介绍了一些基本的简单的操作,以后遇到其他的再补充吧。最后再上一张结构图吧

发表评论

目前评论:1