您的位置:首页 > 其它

文件的读取和写入(指定路径)

2017-07-26 15:01 260 查看
1 package cn.jason.ios.streams;
2
3 import java.io.BufferedInputStream;
4 import java.io.BufferedOutputStream;
5 import java.io.File;
6 import java.io.FileInputStream;
7 import java.io.FileNotFoundException;
8 import java.io.FileOutputStream;
9 import java.io.FileReader;
10 import java.io.IOException;
11
12 /**
13  * 测试IO流 *
14  *         读取指定文件的信息
15  * @author 小风微灵
16  *
17  */
18 public class MyStream {
19
20     /**
21      * 字节流读取信息到控制台
22      * @param filePath        文件地址
23      * @throws IOException    抛出的异常
24      */
25     private static void getFileInfos_ZJ(String filePath) throws IOException{
26
27         //创建对象
28         File file=new File(filePath);
29
30         //FileInputStream         输入流
31         FileInputStream fis=new FileInputStream(file);
32
33         //需要一个缓冲器
34         byte[] bs=new byte[1024*1024];
35
36         //记录读取长度
37         int length=fis.read(bs);
38
39         //[3]读取数据(开水管洗澡)
40         String content=new String(bs,0,length);
41
42         System.out.println("【缓冲】读取的内容:"+content);
43
44         //[4]关闭资源(关闭水龙头)
45         fis.close();
46     }
47
48     /**
49      * 字符流读取信息到控制台
50      * @param filePath
51      * @throws IOException
52      */
53     private static void getFileInfos_ZF(String filePath) throws IOException{
54                 //创建对象
55                 File file=new File(filePath);
56
57                 //字符流
58                 FileReader fr=new FileReader(file);
59
60                 //开始读取数据
61                 int content=0;
62                 while ((content=fr.read())!=-1) {
63                     System.err.print((char)content);
64                 }
65                 fr.close();
66     }
67
68     /**
69      * 缓冲字符流读取信息到控制台
70      * read
71      *        public int read(char[] cbuf,
72      *                        int offset,
73      *                        int length)
74      *                 throws IOException将字符读入数组中的某一部分。
75      *
76      *        指定者:
77      *            类 Reader 中的 read
78      *        参数:
79      *            cbuf - 目标缓冲区
80      *            offset - 从其处开始存储字符的偏移量
81      *            length - 要读取的最大字符数
82      *        返回:
83      *            读取的字符数,如果已到达流的末尾,则返回 -1
84      *        抛出:
85      *            IOException - 如果发生 I/O 错误
86      *
87      * @throws IOException
88      */
89     private static void getFileInfos_ZF_HC(String filePath)throws IOException{
90         //读取
91                 File file=new File(filePath);
92                 FileInputStream fis=new FileInputStream(file);
93                 BufferedInputStream bis=new BufferedInputStream(fis);
94             //工具
95                 int length=0;
96                 byte[] b=new byte[1024];
97                 StringBuilder infos=new StringBuilder();
98         //输出
99                 while((length=bis.read(b))!=-1){
100                     String str=new String(b,0,length);
101                     infos.append(str);
102                 }
103                 System.out.println(infos.toString());
104
105         //关闭资源
106                 bis.close();
107                 fis.close();
108     }
109
110     /**
111      *拷贝一个文件的内容到另外一个文件中
112      * @param srcFilePath    源文件地址
113      * @param desFilePath    目标文件地址
114      * @throws IOException
115      */
116     private static void sFile_To_OtherFile(String srcFilePath,String desFilePath)
117                                             throws IOException{
118         //读取文件
119             File fin=new File(srcFilePath);
120             FileInputStream fis=new FileInputStream(fin);
121             BufferedInputStream bis=new BufferedInputStream(fis);
122
123         //写入文件
124             File fout=new File(desFilePath);
125             FileOutputStream fos=new FileOutputStream(fout,true);//追加信息,而不是覆盖
126             BufferedOutputStream bos=new BufferedOutputStream(fos);
127
128         //工具准备
129             //缓冲写法1【测试通过】
130 //            byte[] b=new byte[1024];
131 //            int length=0;
132 //            while((length=bis.read(b))!=-1){
133 //                bos.write(b, 0, length);
134 //            }
135             //缓冲写法2【测试通过】
136             int length=0;
137             while((length=bis.read())!=-1){
138                 bos.write(length);
139             }
140         //关闭资源
141             bos.close();
142             fos.close();
143             bis.close();
144             fis.close();
145     }
146
147     /**
148      * 程序入口
149      * @param params    启动参数
150      * @throws IOException     IO流异常抛出
151      */
152     public static void main(String[] params) throws IOException {
153         getFileInfos_ZF_HC("F:\\FileDemos\\2.txt");
154         sFile_To_OtherFile("F:\\FileDemos\\2.txt","F:\\FileDemos\\test.txt");
155     }
156 }


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐