JAVA的IO操作

普及英文 buffer 字节 char 字符


 分类方法

 第一种: 字节流(以字节为单位进行读取)MP3什么的就只有字节,所以只能进行字节流 //最原始的数据InutStream OutputStream

字符流(以字符为单位进行读取操作)对文件什么的进行操作//Reader   Writer 读出来的一个字符一个字符 两个字节

第二种: 节点流(普 通水管)

处理流(首先有普通水管,可以流淌各种数据,为水管添加额外的东西,可以对数据进行处理)



字节流: 抽象类(InputStream (读取) OutputStream(写入)) 注意:和两个类为抽象类需要子类去实现,常用的为FileInputStream和FileOutputStream

核心方法InputStream

 int read(byte [] b ,int off,int len) 返回读取的字节数,如果是末位 则返回-1

第一个参数:读取的数据放在这

第二个数据:把b的前OFF位都空着 从第OFF+1位开始存放数据

第三个数据:读几位

OutputStream void write(byte [] b ,int off,int len)  在close前flush一下 一个习惯



 

 FileInputStream iS =new FileinputStream();

byte [] buffer =new byte[100];

int temp = iS.read(buffer, 0,buffer.length);//把数据都读到了buffer中了 //temp可以判断读了多少字节

// for(int i =0;i<buffer.length;i++){

// System.out.println(buffer[i]);

// }

String s =new String(buffer);//可以还原成字符,生成字符串

s.trim();

System.out.println(s);


FileOutputStream oS =new FileOutputStream();

oS.write(buffer,0,temp);


大文件的操作: while(true){

int temp = iS.read(buffer, 0,buffer.length);

if(temp == -1){

break;

}

进行数据的操作。

}//思想为取一点操作一点,在读取一点。temp为-1的时候读取完了




字符流: 两个根本的抽象类,其他为其子类

字节输入流类:Reader(相当于与字节流的InputStream) 常用的为FileReader  int read(char [] c,int off,int len)

字节输出流类:Writer (相当于与字节流的OutputStream)常用的为FileWriter  int  write(char [] c,int off,int len)

example: FileReader fr = null;

FileWrite fw = null;

try{

fr = new FileReader("")

char [] buffer =new char [100];

int temp = fr.read(buffer , 0 ,buffer.length)

//此时数据已经在buffer中

fw.write(buffer,0,temp)

}catch(){}finally文件的关闭}.......//大文件读取和字节流同样的道理



处理流:BufferedReader 方法:public String readLine() throws IOException

         Example: BufferedReader in = new BufferedReader(newfileReadaer(“”))

                            //Stringline =in.readLine();

                            While(true){

Line =in.readLine() ;

If(line == null)

         break;

//对当前的line进行操作

BufferWriter可以写一行 之后newLine一下换行

其实BufferReader就是一个装饰者,装饰下fileReader这个节点流,而BufferReader就是处理流了。

在原有节点流的基础上加上了新的功能 ,就是这个readLine一次读取一行的功能。




常见处理流:

BufferedInputStream,BufferedOutputStream //带缓冲区的流 

BufferReader BufferWriter //直接读取一行的内容

inputStreamReader OutputStreamWriter //将字节流当成字符流来处理,给以一个自己喜欢的编码方式,也可以写入字符串 (键盘输入为字节,一般要变成字符来用)

DataInputStream DataOutputStream  数据流//套接在inputStrean和outputStream上 readBoolean() readByte() readUTF()字符串 等方法 对应write

PrintWriter PrintStream  //打印流 有一个很好的方法叫println  但是这个只有在输出的时候才有    会自动flush 打到文件中去


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值