Java IO流(1)


File类中的预定义变量
pathSeparator  ;
separator windows下\ *nix / 可用于动态生成路径名,适用于跨平台


流:程序与 文件,数组,网络连接,数据库进行数据的交互,以程序为中心


IO流的分类:
1 流向:输入流和输出流
2 数据:字符流:文本文件,只能处理纯文本
字节流:二进制,一切文件
3 功能:节点流:包裹源头
处理流:增强功能,提供性能


字节流:InputStream和OutputStream
常用方法:read(byte[] b),read(byte[] b,int off,int len),close(),write(byte[]),write(byte[] b,int off,int len),flush()
字符流: Reader和Writer
常用方法:read(char[] text),read(char[],int off,int len),close(),write(char[] text),write(char[] text,int off,int len),flush()


操作:
1 建立联系
2 选择流
3 操作 数组大小,read,wirte
4 释放资源


读取文件:
 1 建立联系: File对象 源头
 2 选择流: InputStream FileInputStream
 3 操作: byte[] car=new byte[1024];read 读取大小 输出
 4 释放资源:关闭
写出文件:
 1 建立联系: File对象 目的地
 2 选择流: OutputStream FileOutputStream
 3 操作:write() flush()
 4 释放资源: 关闭


文件拷贝:将读取文件和写出文件相结合
文件夹拷贝:
import java.io.*;


public class CopyDir {
    public static void copyDir(File src,File des) throws IOException{
        if(src.isDirectory()){
            des.mkdirs();
            for(File temp:src.listFiles()){
                copyDir(temp,new File(des,temp.getName()));
            }
        }else if(src.isFile()){
            CopyBinary.copyFile(src,des);
        }
    }
}


缓冲流:
BufferedInputStream 
BufferedOutputStream
BufferedReader 
新增方法:readLine()
BufferedWriter
新增方法:newLine()






编码:字符--编码字符集--> 二进制
解码: 二进制 --解码字符集-->字符
出现乱码的两个原因:
编码字符集和解码字符集不同,字节数长度不够


字节流转字符流:
InputStreamReader:
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(new File("c:/users/lenovo/desktop/hello.txt")),"Unicode"));
OutputStreamWriter:
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FilOutputStream(new File("c:/users/lenovo/desktop/hello.txt")),"Unicode"));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值