Java中的IO操作
来源:互联网 发布:互刷源码 编辑:程序博客网 时间:2024/04/30 09:49
1.I/O操作的目标
从数据源当中读取数据(I)以及将数据写入到数据目的地当中(O)
2.I/O的分类方法
第一种分法:
1.输入流
2.输出流
第二种分法:
1.字节流(把字符转换为ASCII码,然后以字节的方式读取出来)
2.字符流(读写文件时,以字符为基础)
第三种分法:
1.节点流(真正处理数据的IO流)
2.处理流(在节点流的基础上对数据进行再加工.类似于装饰者(Decorator)模式)
3.读取文件写入文件的方法
a.字节流的操作
(1).文件内容较少的情况
from.txt 文件的内容为 abcd
to.txt的内容为空
(2).文件内容比较多(采用循环的方式读取,难道下一次读取都是在上一次读取完后的内容后面进行读取吗???)
import java.io.*;class Test{ public static void main(String arg[]) { //生成输入流的引用 FileInputStream fis=null;//生成输出流的引用 FileOutputStream fos=null; try{//生成代表输入流的对象 fis=new FileInputStream("D:/src/from.txt");//生成代表输入流的对象 fos=new FileOutputStream("D:/src/to.txt");//生成一个字节数组 byte[] buffer=new byte[100];//buffer:读取数据放在里面,off:表示偏移量,len:表示读取的长度 fis.read(buffer,0,100); for(int i=0;i<buffer.length;i++) {//输出的结果为96,97,98,99,0,0.....//如果把上面的偏移量改为4,后面的长度必须改为96,否则出现下标越界的异常,输出的几位为:0,0,0,0,96,97,98,99,0,0...... System.out.println(buffer[i]); }//将字节还原为字符 String str=new String(buffer); System.out.println(str.trim());//写入 fos.write(buffer,0,100); } catch(Exception e) { System.out.println(e); } finally { try{ fis.close(); fos.close(); }catch(Exception e){ System.out.println(e); } } }}
import java.io.*;class Test{ public static void main(String arg[]) { FileInputStream fis=null; FileOutputStream fos=null; try{ fis=new FileInputStream("D:/src/from.txt"); fos=new FileOutputStream("D:/src/to.txt"); byte[] buffer=new byte[1024]; while(true) { //当read()方法返回-1时,表示文件内容已经全部读完 int iLen=fis.read(buffer,0,1024); if(iLen==-1)break; fos.write(buffer,0,1024); } } catch(Exception e) { System.out.println(e); } finally { try{ fis.close(); fos.close(); }catch(Exception e) { System.out.println(e); } }}}
b.字符流的操作
(1).文件内容较少的情况
from.txt 文件的内容为 abcd
to.txt的内容为空
import java.io.*;class Test{ public static void main(String arg[]) { FileReader fr=null; FileWriter fw=null; try { fr=new FileReader("d:/src/from.txt"); fw=new FileWriter("d:/src/to.txt");//注意:这里是使用char[],而在字节流中使用 的是byte[] char[] buffer=new char[100]; fr.read(buffer,0,100); for(int i=0;i<buffer.length;i++) {//输出结果为a,b,c,d,空,空...... System.out.println(buffer[i]); }//写入 fw.write(buffer,0,100); } catch(Exception e) { System.out.println(e); } finally { try{fr.close();fw.close();} catch(Exception e){System.out.println(e);} } } }
c.处理流的使用实例
(1).创建一个文件user.txt 内容如下:
2.声明一个类Test.java,代码如下:
import java.io.*;class Test{ public static void main(String arg[]) { FileReader fr=null; BufferedReader bufferedReader=null; try { fr=new FileReader("d:/src/users.txt"); //生成BufferedReader对象(参数为FileReader类的对象,用到了设计模式中的"装饰者(Decorator)模式") bufferedReader=new BufferedReader(fr); String line=null; while(true){ //读一行 line=bufferedReader.readLine(); if(line==null) { break; } System.out.println(line); } } catch(Exception e) { System.out.println(e); } finally { try{fr.close();bufferedReader.close();} catch(Exception e){System.out.println(e);} } } }
3.执行结果:
总结:
I/O当中的核心类FileInputStream 继承自 InputStream,FileOutputStream 继承自OutputStream.
FileReader 继承自Reader,FileWriter继承自Writer
I/O核心类的核心方法: InputStream
int read(byte[] b,int off,int len) //返回读取的数据长度,读取的数据都放在参数b中,off参数表示偏移量(在第几个位置输出),len参数表示读取的长度
OutputStream
void write(byte[],int off,int len)
- Java中的IO操作
- JAVA中的IO操作
- java中的IO操作
- java中的IO操作
- java中的IO操作
- JAVA 中的IO操作
- Java中的IO操作
- java中的IO操作
- java中的IO操作
- java中的IO操作-IO介绍
- java中的IO操作总结
- java中的IO流操作大全
- java中的IO操作总结(一)
- DAY19--java中的IO操作总结
- java中的IO操作总结(一)
- java中的IO操作总结(一)
- java中的IO操作总结(二)
- java中的IO操作总结(三)
- 3-1 编写并测试一个函数,逆转字符串中字符顺序
- cpio格式 initrd 的解压与压缩
- 可存放避孕套的iPhone手机壳“Playa Case ”
- 博客与生活
- android编译系统makefile(Android.mk)写法
- Java中的IO操作
- 电脑通过android手机上网 .
- 【人生8味良药】
- Android 浅谈相机研发
- SEO需要注意的几点
- Magento 优化
- 保存图片到SD卡,但是Gallery中不能及时显示的问题
- 中国游戏市场 你值得关注
- Android 用CoverFlow的效果