JAVA FILE or I/O学习 - File学习

  1 public class FileKnow
  2 {
  3     public static void main(String[] args)
  4     {
  5         //构建file对象 ,参数表示文件所在的路径
  6         File file = new File("d:\\niit.log");
  7         
  8         //判断文件是否存在
  9         System.out.println(file.exists());
 10         //判断文件是否是单个的文件
 11         System.out.println(file.isFile());
 12         //判断文件是否是文件夹
 13         System.out.println(file.isDirectory());
 14         //获取文件的绝对路径
 15         System.out.println(file.getAbsolutePath());
 16         //获取文件名
 17         System.out.println(file.getAbsolutePath().substring(file.getAbsolutePath().lastIndexOf("\\")+1,file.getAbsolutePath().lastIndexOf(".")));
 18         //获取文件完整的名称包括后缀名
 19         System.out.println(file.getName());
 20         //获取文件所在的相对路径
 21         System.out.println(file.getParent());
 22         //获取文件所在盘符的大小空间
 23         System.out.println(file.getTotalSpace());
 24         //获取文件所在盘符的可用空间
 25         System.out.println(file.getFreeSpace());
 26         System.out.println(file.getUsableSpace());
 27         //获取文件自身的字节数
 28         System.out.println(file.length());
 29         //是否隐藏文件
 30         System.out.println(file.isHidden());
 31         //是否可读
 32         System.out.println(file.canRead());
 33         //设置文件是否可写(只读性的设置)
 34         file.setWritable(false);
 35         //获取文件最后次修改的时间
 36         System.out.println(file.lastModified());
 37         System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date(file.lastModified())));
 38 //        FileKnow fileKnow = new FileKnow();
 39 //        fileKnow.createFile("E:/【    图 片    】", "weifei.jpg");
 40     }
 41     /*******************************************文件基本操作**********************************************/
 42     /**
 43      * 根据指定路径搜索显示所有的文件信息
 44      * @param path
 45      */
 46     public void showFiles(String path)
 47     {
 48         //通过路径构建文件
 49         File file = new File(path);
 50         //判断文件是否存在
 51         if(file.exists())
 52         {
 53             //打印输出当前文件的路径
 54             System.out.println(file.getAbsolutePath());
 55             //判断是否是文件夹
 56             if(file.isDirectory())
 57             {
 58                 //判断文件夹中是否有文件
 59                 File[] files = file.listFiles();
 60                 if(files != null)
 61                 {
 62                     //遍历子文件
 63                     for(File childFile : files)
 64                     {
 65                         showFiles(childFile.getAbsolutePath());
 66                     }
 67                 }
 68             }
 69         }
 70         else
 71         {
 72             System.out.println("文件不存在!");
 73         }
 74     }
 75     /**
 76      * @param args
 77      */
 78     /**
 79      * 创建文件
 80      */
 81     public void createFile(String path,String fileName)
 82     {
 83         //创建文件对象
 84         File file = new File(path, fileName);
 85         //判断文件是否存在
 86         if(file.exists())
 87         {
 88             System.out.println("文件已经存在");
 89         }
 90         else
 91         {
 92             //创建文件
 93             try
 94             {
 95                 if (file.createNewFile())
 96                 {
 97                     System.out.println("文件创建成功");
 98                 }
 99                 else {
100                     System.out.println("文件创建失败");
101                 }
102             } catch (IOException e)
103             {
104                 // TODO Auto-generated catch block
105                 e.printStackTrace();
106             }
107         }
108     }
109     /**
110      * 创建文件夹
111      * @param path
112      */
113     public void createDirectroy(String path, String diretroyName)
114     {
115         File file = new File(path, diretroyName);
116         //判断是否存在
117         if(!file.exists())
118         {
119             //创建文件夹
120             file.mkdir();
121         }
122         else
123         {
124             System.out.println("文件夹已经存在");
125         }
126     }
127     /**
128      * 拷贝文件
129      * @param sourcePath 复制文件的路径  如:D:/
130      * @param fileName 文件名  如:back.jpg
131      * @param newPath 复制到的位置  如:E:/
132      */
133     public void copyFile(String sourcePath, String fileName, String newPath)
134     {
135         //创建复制的文件
136         File sourceFile = new File(sourcePath,fileName);
137         //判断文件是否存在
138         if(sourceFile.exists())
139         {
140             File newFile = new File(newPath,fileName);
141             //如果文件存在,判断文件的类型
142             if(sourceFile.isFile())
143             {
144                 //如果是单个的文件,使用流读写文件
145                 try
146                 {
147                     //构建输入流读取复制的文件
148                     BufferedInputStream input = new BufferedInputStream(new FileInputStream(sourceFile),1024*1024*10);
149                     //构建输出流写出文件
150                     BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(newFile),1024*1024*10);
151                     int data;
152                     while((data = input.read()) != -1)
153                     {
154                         output.write(data);
155                     }
156                     //关闭流
157                     output.flush();
158                     output.close();
159                     input.close();
160                     
161                 } catch (FileNotFoundException e)
162                 {
163                     // TODO Auto-generated catch block
164                     e.printStackTrace();
165                 } catch (IOException e)
166                 {
167                     // TODO Auto-generated catch block
168                     e.printStackTrace();
169                 }
170             }
171             else
172             {
173                 //如果是文件夹,新建文件夹
174                 newFile.mkdir();
175                 //判断文件夹中是否还有子文件
176                 File[] files = sourceFile.listFiles();
177                 //遍历子文件
178                 for(File childFile : files)
179                 {
180                     //递归复制子文件
181                     copyFile(childFile.getParent(), childFile.getName(), newFile.getAbsolutePath());
182                 }
183             }
184         }
185     }
186     /**
187      * 剪切文件
188      * @param sourcePath
189      * @param fileName
190      * @param newPath
191      */
192     public void cutFile(String sourcePath, String fileName, String newPath)
193     {
194         //
195     }
196     /**
197      * 重命名
198      * @param path
199      * @param fileName
200      * @param newName
201      */
202     public void renameFile(String path, String fileName, String newName)
203     {
204         //创建源文件
205         File oldFile = new File(path, fileName);
206         //判断源文件是否存在
207         if(oldFile.exists())
208         {
209             //创建新文件
210             File newFile = new File(path, newName);
211             //判断新文件是否存在
212             if(!newFile.exists())
213             {
214                 //重命名
215                 oldFile.renameTo(newFile);
216             }
217             else
218             {
219                 System.out.println("文件名已存在");
220             }
221             
222         }
223         else
224         {
225             System.out.println("文件不存在");
226         }
227         
228     }
229     /**
230      * 删除文件
231      * @param path
232      * @param fileName
233      */
234     public void deleteFile(String path, String fileName)
235     {
236         //获取要删除的文件对象
237         File file = new File(path,fileName);
238         //判断文件是否存在
239         if(file.exists())
240         {
241             //如果存在,判断该文件是文件还是文件夹
242             if(file.isDirectory())
243             {
244                 //如果是文件夹,获取该文件夹的子文件
245                 File[] files = file.listFiles();
246                 //递归删除子文件
247                 for(File childFile : files)
248                 {
249                     deleteFile(childFile.getParent(), childFile.getName());
250                 }
251             }
252             //删除整个文件
253             file.delete();
254         }
255     }
256 }

 

posted @ 2013-09-22 11:21  魏飞  阅读(359)  评论(0编辑  收藏  举报
你见

或者不见我
我就在那里
不悲不喜
你念

或者不念我
情就在那里
不来不去
你爱

或者不爱我
爱就在那里
不增不减
你跟

或者不跟我
我的手就在你的手里
不舍不弃
来我怀里
或者
让我住进你的心里
默然

相爱
寂静

喜欢
Mr Frank