欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

[Java学习] Java文件处理类,

来源: javaer 分享于  点击 41114 次 点评:207

[Java学习] Java文件处理类,


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

相关文章

    暂无相关文章
相关栏目:

用户点评