Java字节流和字节流的区别
流:用来处理输出和输入,主要是和文件打交道,把计算机的处理结果保存到文件中,把文件中的内容读取到内存中,这些都需要流操作来完成。
1.理解什么是字节流,什么是字符流
字节=byte=8位 字符=char=16位(和具体的文字编码有关)
用字节流处理所有工作。但是,在处理字符文件的时候,用字符流比较方便
用法:任何时候都可用字节流,如果文件是可读的文本,而且读出来需要人去看,来显示,这时最好用字符流。
这种情况下,如果你非要使用字节流来读,读出来以后你还要把它装配成字符。
了解一下ANSI,UNICODE,utf-8,gb2312编码
2.通过FileInputStream读取文件,显示在屏幕上。
FileNotFoundException 非RuntimeException
实例(FileInputStream按字节读取和FileReader按字符读取)
import java.io.FileInputStream;
import java.io.IOException;
public class Test {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//方法一
FileInputStream fis=new FileInputStream("F:\\123.txt");
// int ch=0;//接收每次读取到的东西
// while((ch=fis.read())!=-1)//不等于-1表示东西没读完
// {
// //System.out.print((char)ch+"\t");
//
// }
// fis.close();
int len=fis.available();//返回文件长度
byte[] data=new byte[len];
fis.read(data);
System.out.println(new String(data));
fis.close();
//方法二
FileReader fr=new FileReader("F:\\123.txt");
int ch =0;
while((ch=fr.read())!=-1)
{
System.out.print((char)ch);
}
fr.close();
}
}
输出结果:
3.通过FileOutputStream将数据写入到文件中,FileWriter亦可以实现操作
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
public class Test {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//方法一
// FileOutputStream fos=new FileOutputStream("F:\\abc.txt");
// String str="我爱王红这只臭猪!";
// fos.write(str.getBytes());
// fos.close();
//方法二
FileWriter fw=new FileWriter("F:\\abc.txt");
String str="我爱王红这只臭猪,我要一辈子和她在一起!";
fw.write(str);
fw.close();
}
}
输出结果: