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

JAVA IO流(1) 字节流和字符流

2015-02-12 15:49 309 查看
在学习java  io的内容

首先是io的分类:第一种:输入流和输出流

第二种:字符流和字节流

第三类:节点流和处理流

第一种不写了

第二种的字节流:输入和输出都是以字节为单位,使用时要用byte数组作为中转站;

package io;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class test {
public static void main(String args[]) {
//声明一个输入流的的引用
FileInputStream in=null;
//声明一个写出流的引用
FileOutputStream out=null;
try {
//new 一个fileinputstream
in= new FileInputStream("d:/2.txt");
//new 一个fileoutputstream
out=new FileOutputStream("d:/3.txt");

//生成一个byte的数组
byte [] one=new byte[1024];

while(true)
{
//用一个int 来接受read函数的返回值(返回值为读取的字节数)
int temp=in.read(one, 0, one.length);
if(temp==-1)
break;
out.write(one, 0, temp);
}
} catch (Exception e) {
// TODO: handle exception
}
finally{               //finally里面的close方法可以引起错误所以在里面嵌套一个try...catch方法
try {
in.close();
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}
}


其中read的返回值要注意,是int类型,意思为读取到的字节数;

如果在read做循环打印,则是打印出字符的code码!
其中while循环的作用是在进行大数据的工作时,分段读取写入可以提高效率和节约空间!

这其中的要点是read函数在读取完字节的时候的返回值是-1!用此来控制while函数里面的if函数的运行!

字符流:使用方法和上面类似;只不过把byte变成char类型下面贴入代码

这时如果打印就是打印出字符了

package io;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class chario {
public static void main(String args []) {
//生成一个filereader的引用
FileReader reader=null;
//生成一个filewriter的引用
FileWriter writer=null;

try {
//分别生成reader和writer的对象
reader=new FileReader("D:/1.txt");
writer=new FileWriter("D:/2.txt");

//生成字符数组
char [] one=new char [100];

//调用两个对象的相应的函数,读取和写入
int temp=reader.read(one, 0, one.length);//用temp来存储read的返回值

writer.write(one, 0, temp);

} catch (Exception e) {
// TODO: handle exception
}
finally{
try {
reader.close();
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//开启io流之后必须关闭,不然eclipse不给运行
}
}

}


这就是字节流和字符流
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐