您的位置:首页 > 编程语言 > Java开发

JAVA中的基本IO流及高效缓冲流读写文件的4中方法

2018-04-07 17:01 411 查看

一:基本IO流

1.字节输出流超类:OutputStream 

      作用:从java程序将数据写入到文件中,每次只操作文件中的1个字节
    使用其子类,FileOutputStream操作文件

2.字节输入流超类:InputStream

    作用:从文件中读取字节到程序,每次只读取一个字节

    使用其子类FileInputStream读取文件

3.转换流:

            OutputStreamWriter,字符流到字节流的桥梁

            InputStreamReader,字节流到字符流的桥梁

4.字符输出流:FileWriter

5.字符输入流:FileReader

二:高效缓冲流

    BufferedInputStream:高效字节输入流
    BufferedOutputStream:高效字节输出流

    BufferedWriter:高效字符缓冲流

    BUfferedReader:高效字符输入流

1.字节流复制文件1.一次读取写入一个字节               FileInputStream fis = new FileInputStream(new File("C:\\a.txt"));
         FileOutputStream fos = new FileOutputStream(new File("C:\\b.txt"));
               int len = 0;
         // 一次读取一个字节
         while ((len = fis.read()) != -1) {
                    fos.write(len);
                    fos.flush();
              }
               fis.close();
         fos.close();2.字节流复制文件2.一次读取写入一个字节数组                FileInputStream fis = new FileInputStream(new File("C:\\JD_PHONE_LIST_UTF-8.txt"));
FileOutputStream fos = new FileOutputStream(new File("C:\\b.txt"));
int len = 0;
byte[] bytes =new byte[1024];
// 一次读取一个字节
while ((len = fis.read(bytes)) != -1) {
fos.write(bytes,0,len);
fos.flush();
}
fis.close();
fos.close();3.字节流复制文件3.一次读取写入一个字节到缓冲流
                FileInputStream fis = new FileInputStream(new File("C:\\JD_PHONE_LIST_UTF-8.txt"));
BufferedInputStream bis = new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream(new File("C:\\b.txt"));
BufferedOutputStream bos = new BufferedOutputStream(fos);
int len =0;
while((len = bis.read())!=-1){
bos.write(len);
bos.flush();
}
bis.close();
bos.close();
4.字节流复制文件4.一次读取写入一个字节数组到缓冲流
                FileInputStream fis = new FileInputStream(new File("C:\\JD_PHONE_LIST_UTF-8.txt"));
BufferedInputStream bis = new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream(new File("C:\\b.txt"));
BufferedOutputStream bos = new BufferedOutputStream(fos);
int len =0;
byte[] bytes=new byte[1024];
while((len = bis.read(bytes))!=-1){
bos.write(bytes, 0, len);
bos.flush();
}
bis.close();
bos.close();
<
4000
span style="font-size:32px;">5.高效字符缓冲流复制文件一次读取一行: BufferedReader br = new BufferedReader(new FileReader(new File("C:\\JD_PHONE_LIST_UTF-8.txt")));
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("C:\\b.txt")));
String line ="";
while((line =br.readLine())!=null){
bw.write(line);
bw.newLine();
bw.flush();
}
br.close();
bw.close();
6.高效字符缓冲流转换流复制文件一次读取一行:              //以UTF-8编码读取
BufferedReader bReader = new BufferedReader(new InputStreamReader(new FileInputStream("C:\\JD_PHONE_LIST_UTF-8.txt"), "UTF-8"));
//以ISO-8859-1编码写出
BufferedWriter bWriter =new BufferedWriter(new OutputStreamWriter(new FileOutputStream("c:\\b.txt"), "ISO-8859-1"));
String line = null;
while((line =bReader.readLine())!=null){
bWriter.write(line);
bWriter.newLine();
bWriter.flush();
}
bReader.close();
bWriter.close();    

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