本文共 1488 字,大约阅读时间需要 4 分钟。
1、I/O操作的目标:对数据进行读写操作。
从数据源(文件、键盘、网络等)当中读取数据,以及将数据写入到数据目的地(文件、屏幕、网络等)当中。
I/O的流向:文件等---------进入到java程序---------输出到文件等。
数据的流向以java程序为参照物。
2、IO的分类方法
第一种分法:输入流和输出流;
第二种分法:字节流和字符流;
第三种分法:节点流和处理流。
3、读取文件和写入文件的方法
(1、IO当中的核心类:InputStream OutputStream是父类都是抽象类,必须用子类来生成对象。
最常用子类:FileInputStream (从硬盘的文件中读取数据)
FileOutputStream(将数据写入到硬盘文件)
(2、核心方法:
InputStream:
int read(byte [] b,int off, int len) //以字节的形式读取数据并放入比特类型的数组里,从数组的第几位开始放,读取一//一次最多读多少数据, 返回一次读取的字节数。一般off=0,len是数组的长度。
OutputStream:
void write(byte [] b,int off, int len) //把要往文件里写的数据变成比特类型的数组,偏移量,总共要写多少数据。
(3、程序第一步:导入类:import java.io.*; //*号是导入io包里所有类
class Test{
public static void main(String args []){
FileInputStream fis = null; //声明输入流引用,用来指向FileInputStream的一个对象
FileOutputStream fos = null;//声明输出流的引用
try {
fis = new FileInputStream("e:/src/from.txt"); //参数是文件的位置
fos = new FileOutputStream("e:/src/to.txt");//参数是输出文件的位置
byte [] buffer = new byte [100]; //因为读取的文件要放入比特类型的数组,这里要声明一个字节数组
int temp = fis.read(buffer, 0,100); //调用输入流对象的read方法,读取数据:将文件读到buffer数组里
fos.write(buffer, 0, temp);
/*将字节数据还原成字符
String s = new String(buffer);生成一个String对象,字节数组作为参数
s = s.trim(); //调用一个string对象的trim方法,将会去除这个字符串的首位空格
system.out.println(s);
*/
}
catch(Exception e){
system.out.println(e);
}
finally{
try{
fis.close();
fos.close(); //关闭输出流
}catch(Exception e){
system.out.println(e);
}}
}
}
字符流:读写文件时是以字符为单位。
字符输入流:Reader 子类:FileReader 方法:int read(char [] c, int off, int len)
字符输出流:Writer 子类:FileWriter 方法:void write(char [] c, int off, int len)
转载地址:http://yhani.baihongyu.com/