2016/1/27 1, File 创建 删除 改名 换路径 2,输出流 不覆盖 换行输入 3,输入流

1, File  创建  删除  改名  换路径    

 1 package Stream;
 2 
 3 import java.io.File;
 4 
 5 import java.io.IOException;
 6 
 7 public class OutIn {
 8 
 9     /**
10      * 输入输出
11      */
12     public static void main(String[] args) {
13         File f1 = new File("d:/book.txt"); // 第一种 实例化文件名称 转义序列无效(有效值为 \b \t \n
14                                             // \f \r \" \' \\)
15         // File f1=new File("d:/","book.txt"); //第二种文件路径和文件名写法
16         if (f1.exists()) { // 判断是否存在
17             System.out.println("文件已经存在");
18             // f1.delete(); // 文件如果存在 可以做删除处理
19         } else {
20             try {
21                 f1.createNewFile(); // 不存在 创建文件
22             } catch (IOException e) {
23                 // TODO 自动生成的 catch 块
24                 e.printStackTrace();
25             }
26             f1.renameTo(new File("c:/buk.txt")); // 文件已存在的情况下 可以改文件名和文件路径
27         }
28 
29     }
30 }

2,输出流   不覆盖   换行输入   

 1 package Stream;
 2 
 3 import java.io.File;
 4 import java.io.FileNotFoundException;
 5 import java.io.FileOutputStream;
 6 import java.io.IOException;
 7 
 8 public class OutIn1 {
 9 
10     
11     public static void main(String[] args) {
12         File ff=new File("d:/book.txt");//d盘存在book.txt的前提下 输出流
13         
14         FileOutputStream  shuchu=null;  //防止下面finally中shuchu无法识别  初始化放到try外面
15         try {
16             
17             // shuchu=new FileOutputStream(ff);//第一种输出写法 覆盖写入 实例化 二进制流
18                shuchu=new FileOutputStream(ff,true);//第二种输出写法  追加写入 参数多个布尔参数
19             
20             String mm="猴年大吉\n";      //建立字符串  换行输入加\n
21             byte[]b=mm.getBytes();     //通过字符串.getBytes()方法 传给数组b
22             try {
23                 shuchu.write(b);      //数组b内容  传到d:/book.txt 中 完成写入
24                 
25                                    
26             } catch (IOException e) {
27                 // TODO 自动生成的 catch 块
28                 e.printStackTrace();
29             }
30         } catch (FileNotFoundException e) {
31             // TODO 自动生成的 catch 块
32             e.printStackTrace();
33         }
34         finally{  //try  catch  finally  捕获异常结构  保证程序即使前面有异常也可以对这一输出流进行关闭
35             try {
36                 shuchu.close();//输出完成要关闭一下  不然输出流一直独占这个文件  别的线程是无法操作这个文件的
37             } catch (IOException e) {
38                 // TODO 自动生成的 catch 块
39                 e.printStackTrace();
40             }      
41         }
42         
43     }
44 
45 }

3,输入流

 1 package Stream;
 2 
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5 import java.io.FileNotFoundException;
 6 import java.io.FileOutputStream;
 7 import java.io.IOException;
 8 
 9 public class OutIn2 {
10 
11     
12     public static void main(String[] args) throws FileNotFoundException {
13         File ff=new File("d:/book.txt");//确定文件存在  用ff.exists()验证是否存在
14         FileInputStream f2=new FileInputStream(ff);  //存在的情况下 需要抛出异常
15         //FileInputStream f2=new FileInputStream("d:/book.txt");//第二种写法 可以省略File实例化过程
16         byte[]c=new byte[1024];//无法事先知道数组多大  1024是个估计值
17         //为了下面能够读取 先构建一个空数组   
18         try {
19             
20             int chang=f2.read(c);                //读取数组c  返回长度
21             String s=new String(c,0,chang);//读取的内容转化为字符串 方法名加横线表示废弃方法
22             //从读的方法中获取长度  转字符时 通过对长度的控制  对1024多的去掉 表现为字符串后面空白处无光标
23             System.out.println("文本中的内容:"+s);//输入 读到的内容
24         } catch (IOException e) {
25             // TODO 自动生成的 catch 块
26             e.printStackTrace();
27         }
28         finally{
29             try {
30                 f2.close(); //注意对流的关闭动作 不然一旦前面出错,其他线程无法操作这个文件
31             } catch (IOException e) {
32                 // TODO 自动生成的 catch 块
33                 e.printStackTrace();
34             }
35         }
36     }
37 
38 }

 

posted on 2016-01-27 02:27  一棵树2016  阅读(323)  评论(0编辑  收藏  举报