登录  | 立即注册

游客您好!登录后享受更多精彩

查看: 830|回复: 0

【Java】文件处理 FileUtil

[复制链接]

444

主题

509

帖子

2051

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2051

荣誉管理论坛元老

发表于 2021-6-30 22:06:06 来自手机 | 显示全部楼层 |阅读模式 来自:
  1. import java.io.*;
    # s# t, }; g: R4 [( j6 z4 M$ K
  2. import java.util.*;
    ) |% t, @6 i/ [; D
  3. 9 W/ W% D1 q0 w7 e3 o8 q6 J, I
  4. public class FileUtils
    4 b# H  h2 G0 E; A2 m2 u4 u
  5. {# ]9 R5 f6 C/ N$ |3 ?! R
  6.         /*
    # }. G. K" @4 D
  7.          * 列出目录下所有文件
    # u3 O: T/ l5 w. b' i, w
  8.          */8 h3 v0 A- |$ @4 f: q( U6 H5 K
  9.         public static Collection<File> listFiles(File file,String[] miniType,boolean ischeck)
    , c8 p+ s+ G" G$ D+ x
  10.         {# h: v8 J1 k. n' M6 B, Y
  11.                 ArrayList<File> filelist = new ArrayList();
    0 Z. q* J8 y. A
  12.                 File[] files = file.listFiles();
    : g. q6 Y! @: O: B7 L1 S% I' m, l
  13.                 if(files==null){  R: }) h( B" W. n1 `8 h( g
  14.                         return filelist;
    , {& C. q" W( l# n5 h. Y
  15.                 }
    0 V1 z! g" S$ @% L
  16.                 for(int i=0;i<files.length;i++)( s$ a# K# t5 V) O
  17.                 {
    3 b6 ]# |3 {; U
  18.                         if(files[i].isFile())
    3 D, b! e  u+ M& ]; ?. f5 N4 d
  19.                         {" A/ o9 l' r& ~) Q1 M  E
  20.                         for(String type:miniType); L6 N, y8 H& ~6 H; f
  21.                         if(files[i].getPath().endsWith(type))& F. S" }/ Q1 a; x3 f/ @  p; L: P- H
  22.                         {
    2 g4 a+ C6 H) X& h. L6 G+ z& J
  23.                         filelist.add(files[i]);
    * W! ?( Y8 A+ g
  24.                         break;
    9 q0 v" Z( _8 N& h3 B
  25.                         }
      e. k8 ^9 l4 X8 P9 M) x
  26.                         }$ Y2 d. A+ L9 T- {+ q
  27.                         else $ D' M7 F3 r' ?2 ~/ @+ u0 i
  28.                         {
    3 b3 q& [6 i( Z; }6 q: Q$ `
  29.                                 Collection<File> filelist2 = listFiles(files[i],miniType,ischeck);
    4 r( r6 S7 e, |; v; ]/ R- q
  30.                                 for(File f:filelist2)8 x8 D# H1 w3 n6 [& N
  31.                                 filelist.add(f);
    / z; r: x' f% n! M9 m; P* W
  32.                         }
    " z& S+ G) }4 w' p9 D
  33.                 }
    , Y& t$ [  ^6 W  p6 q
  34.                 return filelist;" |1 z7 {3 i, S/ \4 j  B
  35.         }6 I! `; I' O1 N+ b2 p0 u9 W3 R
  36.        
      K1 H* w* W% o, u5 f3 B3 c  G
  37.         //列出目录下所有文件1 B  Z( @! ]* b9 p
  38.         public static Collection<File> listFiles(File file,boolean ischeck)
      u8 V. l4 i; K$ _' t
  39.         {
    : P* ~. {! V; b3 ]& H' o1 T: {/ W3 @
  40.                 ArrayList<File> filelist = new ArrayList();) E& D( L! M% `; K, N. B' F
  41.                 File[] files = file.listFiles();
    $ _( |" h/ {* B( F
  42.                 for(int i=0;i<files.length;i++)8 m/ @. z+ L& G7 m) `$ i
  43.                 {
    # }) `# y9 Q) m
  44.                         if(files[i].isFile())( p( i3 Y2 ~& a
  45.                         {' }( M) B9 B( \. v2 T
  46.                         filelist.add(files[i]);! x' @( J  _% m! J9 o3 x3 Q
  47.                         }
    & H" _& D/ x7 R/ |+ t) c' d, D6 g
  48.                         else
    / v4 P3 a# d' t$ p: _1 p% ]) z
  49.                         {
    4 _1 C2 `- Y; w/ n: a
  50.                                 Collection<File> filelist2 = listFiles(files[i],ischeck);
    " e& L) U8 p6 ^& L
  51.                                 for(File f:filelist2)
    ) y8 {* n) h9 u! k3 c
  52.                                 filelist.add(f);
    $ [! P1 a; Z! K$ ~
  53.                         }
    $ R  @, [& e5 n
  54.                 }
    " u5 D" z3 R+ _; [2 Q
  55.                 return filelist;
    * |8 E; E: C; S  R1 E$ P5 g
  56.         }
    . [7 H- A6 u2 n  P
  57.        
    2 f% N, j0 E6 Z* T$ z( @
  58.        
    - k& H8 N& v% E4 Y. I: l2 V+ F
  59.         //批量删除目录下指定格式文件) c: L6 e9 n2 W, O  ~$ u/ }6 w
  60.         public static void removeFiles(File path,String[] name)2 c9 H2 k4 f; m* W
  61.         {
    " `* u1 X9 s) M) [
  62.                 Collection<File> files = listFiles(path,name,true);
    + w+ b! _8 E7 r0 w
  63.                 for(File file:files)# U9 R- R( V8 K- b% \$ g3 l
  64.                 {) _% v- B5 m; Z* ?) {: Y
  65.                         file.delete();3 B& q% Y, S6 j+ O1 o) o% L, t
  66.                 }
    : u) z* ~' l! E! T6 h# ~
  67.         }
    + ]) T9 _8 _& s: z
  68.        
    : F* {! N! v* s
  69.         //以指定编码写入文本
    * ^9 G! Z5 W+ a
  70.         public static void writeText(String filename,String info,String coding) {
    ( Y# d7 b% i$ u) G# {2 m. a
  71.                 File file = new File(filename);
    * ^1 s/ h1 t& N( b$ g3 y: l

  72. 9 K7 S# E5 u1 D9 j  _

  73. : u# s% i8 z% g' B7 {
  74.                 try/ Q6 I0 j- p5 k6 ]
  75.                 {
    3 g' u1 Y2 e( i, `5 f$ ~% Q+ {/ w
  76.                         if (!file.isFile())file.createNewFile();+ K# n) B( n5 }  e2 V' p! a1 L% |2 X
  77.                 }
    - X3 f' b$ ?( e. L8 h
  78.                 catch (Exception e)$ ]0 a$ O0 A1 }( Y) v" P! B
  79.                 {}
    2 X: S  M  P* \
  80.                 try) ^+ y  m6 L8 D- B) e7 O
  81.                 {
    9 [# m- [  E  ]( M4 ?  A
  82.                         FileOutputStream fileOutputStream = new FileOutputStream(file, false);" u' {7 I8 E, W  R4 L
  83.                         fileOutputStream.write(info.getBytes(coding));
    9 N, S" S+ d% D: d! y
  84.                         fileOutputStream.close();. X, i5 f& v' F  N: ^0 t3 O( E: k* d
  85.                 } catch (FileNotFoundException e) {
    ! ]5 N! C+ d' D' x
  86.                         e.printStackTrace();
    2 K: s/ D8 G, p+ X4 J, ?
  87.                 } catch (IOException e) {
    & |) g8 W* h" q. ~% W
  88.                         e.printStackTrace();
    ) p! L  m% Q2 v; o) g) N
  89.                 }+ @0 M; D) F6 V2 [0 A0 c

  90. 9 X6 S- D# M+ o( k; |$ p* @: ~
  91.         }
    - _5 `) D9 Y( F: w# n

  92.   y" q5 E! c3 K
  93.         //以指定编码读取文本
    ) _6 _& q/ n; ?
  94.         public static String read(File file,String encoding) throws IOException
    , \$ R* P2 D" ?5 }
  95.         {
    ) I, K& v8 s, ]8 [% G5 Q4 k7 d
  96.                 String content = "";
    8 t8 M3 h, {' [' a6 @6 ]
  97.                 //        File file = new File(path);
    * d. e: z+ f8 G! \  a

  98. ! U4 ]5 I9 [9 i( ~+ T
  99.                 if(file.isFile())
    ! j9 d9 m! a" N5 w& x
  100.                 {( e8 p# Q. E# w, g' q
  101.                         FileInputStream input= new FileInputStream(file);
    - {1 g! B* T6 t' l) n

  102. 5 F) B: P7 S  |6 Q; D/ M
  103.                         byte [] buf=new byte[input.available()];
    4 e* i$ l& @8 ^' `' n# s
  104.                         input.read(buf);
    ( K) o4 u0 L$ |( m/ s
  105.                         content = new String(buf,encoding);
    # i7 j4 t0 \9 b
  106.                 }
    , K' C) E! d/ S1 R
  107.                 return content;. s9 C2 H8 i7 {- }5 Z
  108.         }
    7 p) e8 j% a: u; k2 Z; w
  109.         8 X) L: v) _1 X/ {' K  p
  110.         ; }( l3 G4 h. i5 A! X
  111. }
    $ O$ i/ c* l% x# ]
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|星空社区 |网站地图

GMT+8, 2024-4-30 05:00 , Processed in 0.053198 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表