Java文件处理类

  1. 包含一些对文件的基本操作。
  2. import java.io.*;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. public class fileTest {
  6. http://www.kmnk03.com/hxpfk/dzpz/334.html
  7. static int countFiles=0;
  8. static int countFolders=0;
  9. public static void createFile(String filepath)
  10. {
  11. File file=new File(filepath);
  12. if(file.exists())
  13. {
  14. System.out.println("目标文件已经存在!");
  15. return;
  16. }
  17. if(filepath.endsWith(File.separator))
  18. {
  19. System.out.println("目标文件不能为目录!");
  20. return;
  21. }http://www.kmnk03.com/hxpfk/tf/335.html
  22. try {
  23. if(file.createNewFile())
  24. System.out.println("文件创建成功!");
  25. else
  26. {
  27. System.out.println("文件创建失败!");
  28. return;
  29. }
  30. } catch (IOException e) {
  31. // TODO Auto-generated catch block
  32. e.printStackTrace();
  33. }
  34. }
  35. public static void createDir(String dirname)
  36. {
  37. if(!dirname.endsWith(File.separator))
  38. dirname=dirname+File.separator;
  39. File dir=new File(dirname);
  40. if(dir.exists())
  41. {
  42. System.out.println("目录已存在!");
  43. return;
  44. }http://www.kmnk03.com/hxpfk/py/336.html
  45. if(dir.mkdirs())
  46. System.out.println("目录创建成功!");
  47. else
  48. {
  49. System.out.println("目录创建失败!");
  50. return;
  51. }
  52. }
  53. public static boolean checkDirExist(String dirname)
  54. {
  55. File file=new File(dirname);
  56. if(file.exists())
  57. {
  58. if(file.isDirectory())
  59. return true;
  60. }
  61. return false;
  62. }
  63. http://www.kmnk03.com/hxpfk/npx/337.html
  64. public static File[] getDirFiles(String dirname)
  65. {
  66. File[] result=null;
  67. File fileDir = new File(dirname);
  68. if (!fileDir.exists())
  69. {
  70. System.out.println("文件夹不存在");
  71. return null;
  72. }
  73. else
  74. {
  75. if (!fileDir.isDirectory())
  76. {
  77. fileDir = new File(fileDir.getParent());
  78. }
  79. result = fileDir.listFiles();
  80. }http://www.kmnk03.com/hxpfk/npx/338.html
  81. return result;
  82. }
  83. public static void deleteFiles(String filename)
  84. {
  85. File file=new File(filename);
  86. if(!file.exists())
  87. {
  88. System.out.println("文件不存在!");
  89. return;
  90. }
  91. if(file.delete())
  92. {
  93. System.out.println(filename+"文件删除成功!");
  94. }
  95. }
  96. public static void deleteDirs(String dirname)
  97. {
  98. if(!dirname.endsWith(File.separator))
  99. dirname=dirname+File.separator;
  100. File dirn=new File(dirname);
  101. if(!dirn.exists())
  102. {
  103. System.out.println("文件目录不存在!");
  104. return;
  105. }
  106. File[] files=dirn.listFiles();
  107. for(int i=0;i<files.length;i++)
  108. {
  109. if(files[i].isFile())
  110. {http://www.kmnk03.com/hxpfk/py/339.html
  111. deleteFiles(files[i].getAbsolutePath());
  112. }
  113. else
  114. deleteDirs(files[i].getAbsolutePath());
  115. }
  116. if(dirn.delete())
  117. {
  118. System.out.println("目录删除成功!");
  119. }
  120. }
  121. public static void searchFiles(String dirname,String filename)
  122. {
  123. if(!dirname.endsWith(File.separator))
  124. dirname=dirname+File.separator;
  125. File dir=new File(dirname);
  126. if(!dir.exists())
  127. {
  128. System.out.println("该文件夹不存在");
  129. return;
  130. }
  131. File[] files=dir.listFiles();
  132. for(int i=0;i<files.length;i++)
  133. {
  134. if(files[i].isFile())
  135. {http://www.kmnk03.com/hxpfk/npx/340.html
  136. if(files[i].getName().equals(filename))
  137. System.out.println("文件路径为:"+files[i].getAbsolutePath());
  138. }
  139. else
  140. {
  141. searchFiles(files[i].getAbsolutePath(),filename);
  142. }
  143. }
  144. }
  145. public static File[] searchFile(File folder,final String keyWord)
  146. {
  147. File[] subFolders=folder.listFiles(new FileFilter()
  148. {
  149. public boolean accept(File pathname)
  150. {http://www.kmnk03.com/hxpfk/npx/341.html
  151. if(pathname.isFile())
  152. countFiles++;
  153. else
  154. countFolders++;
  155. if(pathname.isDirectory()||(pathname.isFile()&&pathname.getName().contains(keyWord)))
  156. return true;
  157. return false;
  158. }
  159. });
  160. List<File> result=new ArrayList<File>();
  161. for(int i=0;i<subFolders.length;i++)
  162. {
  163. if(subFolders[i].isFile())
  164. result.add(subFolders[i]);
  165. else
  166. {
  167. File[] foldResult=searchFile(subFolders[i],keyWord);
  168. for(int j=0;j<foldResult.length;j++)
  169. result.add(foldResult[j]);
  170. }http://www.kmnk03.com/hxpfk/npx/342.html
  171. }
  172. File files[]=new File[result.size()];
  173. result.toArray(files);
  174. return files;
  175. }
  176. public static void copyFileToFile(File tofile,File fromfile)
  177. {
  178. if(tofile.exists())
  179. {
  180. System.out.println("文件已经存在!");
  181. return;
  182. }
  183. else
  184. {
  185. try {
  186. tofile.createNewFile();
  187. } catch (IOException e) {
  188. // TODO Auto-generated catch block
  189. e.printStackTrace();
  190. }
  191. }
  192. System.out.println("复制文件从"+fromfile.getAbsolutePath()+"到"+tofile.getAbsolutePath());
  193. try {
  194. InputStream is=new FileInputStream(fromfile);
  195. FileOutputStream fos=new FileOutputStream(tofile);
  196. byte []buffer=new byte[1024];
  197. try {
  198. while(is.read(buffer)!=-1)
  199. fos.write(buffer);
  200. is.close();
  201. fos.close();
  202. } catch (IOException e) {
  203. // TODO Auto-generated catch block
  204. e.printStackTrace();
  205. }http://www.kmnk03.com/hxpfk/npx/343.html
  206. } catch (FileNotFoundException e) {
  207. // TODO Auto-generated catch block
  208. e.printStackTrace();
  209. }
  210. }
  211. /**
  212. * @param file 要复制的文件
  213. * @param dirname 文件复制到目标目录
  214. */
  215. public static void copyFileToDir(File file,String dirname)
  216. {
  217. createDir(dirname);
  218. String filename=dirname+"/"+file.getName();
  219. File nfile=new File(filename);
  220. copyFileToFile(nfile,file);
  221. }
  222. public static void copyDirToDir(String todir,String fromdir)
  223. {
  224. File []f=getDirFiles(fromdir);
  225. for(int i=0;i<f.length;i++)
  226. {
  227. if(f[i].isFile())
  228. copyFileToDir(f[i],todir);
  229. else
  230. copyDirToDir(todir+"/"+f[i].getName(),fromdir+"/"+f[i].getName());
  231. }
  232. System.out.println(fromdir+"复制到文件夹"+todir+"复制完成!");
  233. }
  234. /**
  235. * @param args
  236. * @throws IOException
  237. */
  238. public static byte[] readFilebyByte(String filename) throws IOException
  239. {
  240. byte[] result = null;
  241. File file = new File(filename);
  242. if (file.exists() && file.isFile() && file.length() > 0)
  243. {
  244. result = new byte[(int) file.length()];
  245. FileInputStream inStream = new FileInputStream(filename);
  246. inStream.read(result);
  247. inStream.close();
  248. }
  249. return result;
  250. }
  251. public static void readFilebyLine(String filename) throws IOException
  252. {
  253. File file=new File(filename);
  254. BufferedReader reader=null;
  255. System.out.println("以行为单位读取数据,一次读取一行:");
  256. try {
  257. reader=new BufferedReader(new FileReader(file));
  258. String temp=null;
  259. int line=1;
  260. while((temp=reader.readLine())!=null)
  261. {
  262. System.out.println("line"+line+":"+temp);
  263. line++;
  264. }
  265. reader.close();
  266. } catch (FileNotFoundException e) {
  267. // TODO Auto-generated catch block
  268. e.printStackTrace();
  269. }
  270. }
  271. public static void writeFilebyByte(String filename) throws IOException
  272. {
  273. String content="fsfni ds dw wod";
  274. File file=new File(filename);
  275. OutputStream out=null;
  276. System.out.println("以字节为单位写入文件:"+content);
  277. out=new FileOutputStream(file);
  278. byte []bytes=content.getBytes();
  279. out.write(bytes);
  280. out.close();
  281. }
  282. public static void writeFilebyChar(String filename) throws IOException
  283. {
  284. String content="fsfni ds dw wod";
  285. File file=new File(filename);
  286. Writer writer=null;
  287. System.out.println("以字符为单位写入文件:"+content);
  288. writer=new OutputStreamWriter(new FileOutputStream(file));
  289. writer.write(content);
  290. writer.close();
  291. }
  292. public static void writeFilebyLine(String filename) throws IOException
  293. {
  294. String content="fsfni ds dw wod";
  295. File file=new File(filename);
  296. PrintWriter writer=null;
  297. System.out.println("以行为单位写入文件:"+content);
  298. writer=new PrintWriter(new FileOutputStream(file));
  299. writer.println(content);
  300. writer.print(2355);
  301. writer.flush();
  302. writer.close();
  303. }
  304. public static void addContent1(String filename) throws IOException
  305. {
  306. FileWriter writer=new FileWriter(filename,true);
  307. String content="this is a nice man,so you should get it";
  308. writer.write(content);
  309. writer.close();
  310. }
  311. public static void addContent2(String filename) throws IOException
  312. {
  313. RandomAccessFile rfile=new RandomAccessFile(filename, "rw");
  314. long filelength=rfile.length();
  315. rfile.seek(filelength);
  316. String content="hello world";
  317. rfile.write(content.getBytes("gb2312"));
  318. rfile.close();
  319. }
  320. /**
  321. * @param args
  322. * @throws IOException
  323. */
  324. public static void main(String[] args) throws IOException {
  325. // TODO Auto-generated method stub
  326. String dirname="c:/cc/";
  327. String todir="c:/dd/";
  328. String tdir="c:/ee/";
  329. String fn="c:/cc/c.txt";
  330. String filename="ww.txt";
  331. File folder=new File("c:/cc/");
  332. String keyword="ww";
  333. //readFilebyLine(fn);
  334. writeFilebyLine(fn);
  335. addContent1(fn);
  336. addContent2(fn);
  337. //File fromfile=new File("c:/cc/c.txt");
  338. //File tofile=new File("e:/ccc.txt");
  339. //byte[] fb=readFilebyByte(fn);
  340. //for(int i=0;i<fb.length;i++)
  341. // System.out.println((char)fb[i]);
  342. //System.out.println(fb.toString());
  343. //copyFile(tofile,fromfile);
  344. //copyFileToDir(fromfile,todir);
  345. //copyDirToDir(tdir,dirname);
  346. //File[] f=searchFile(folder,keyword);
  347. //createDir(dirname);
  348. //deleteDirs(dirname);
  349. //searchFiles(dirname, filename);
  350. //File[] f=getDirFiles(dirname);
  351. //for(int i=0;i<f.length;i++)
  352. {kmnk03.com
  353. // System.out.println(f[i].getAbsolutePath());
  354. }
  355. }
  356. www,kmnk03.com
  357. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值