字节流:
所有的字节输入输出都继承自InputStream和OutputStream,通常用于读取二进制数据,最基本单位为单个字节,如图像和声音。默认不使用缓冲区。


FileInputStream和FileOutputStream:用于对磁盘文件涉及的数据流进行输入输出处理,即向一个文件对象中写入数据,可以用文件名作为直接参数。
构造FileOutputStream对象时,对应的文件必须存在并且可读的,而构造FileOutputStream对象时,如输出文件已存在,则必须是可覆盖的。
字符流:
所有的字符输入输出都继承自Reader和Writer。java中的字符流处理的最基本的单元是Unicode码元(2字节),通常用于处理文本数据。默认使用缓冲区。
代码应用举例:
package Main;
import java.io.*;
public class Java_1 {
public static void main(String[] args) {
FileWriter f1 = null;
try {
f1 = new FileWriter("d:/test.txt");
f1.write("test success!");
//f1.flush(); 用于将缓存区内容输出
f1.close();
}catch(IOException e) {
e.printStackTrace();
}
}
}
注意:InputStream、OutputStream和Reader、Writer都属于抽象类,不能创建这种类型的对象。
有时需要把字符处理类和字节处理类结合起来,这就需要用到适配器类:
InputStreamReader:将InputStream转换为Reader
OutputStreamWriter:将OutputStream转换为Writer
代码应用举例:
packageMain;import java.io.*;public classJava_1{public static voidmain(String[] args) {try{
FileInputStream f1= new FileInputStream("d:/test1.txt");try{
InputStreamReader f2= new InputStreamReader(f1,"utf8");inti;while((i=f2.read())!=-1){
System.out.println((char)i);//可以输出test1.txt文件中的中文字符
}
}catch(Exception e) {
e.printStackTrace();
}
}catch(FileNotFoundException e) {//TODO Auto-generated catch block
e.printStackTrace();
}
}
}
File类:
java.io包中File类是非流类
提供的方法有
mkdir():创建目录
mkdirs():创建父目录
例题:
题目:
ByteArrayOutputStream f1 = newByteArrayOutputStream();try{
ObjectOutputStream out= newObjectOutputStream(f1);
out.writeObject(this); //this在这里不做定义,不影响问题结果
out.close();
}catch(IOException e) {//TODO Auto-generated catch block
e.printStackTrace();
}
阅读代码段,请问代码段的作用是什么:
A. 将对象写入内存
B. 将对象写入硬盘
C. 将对象写入光盘
D. 将对象写入文件
正确答案为A
下列java语句从指定网址读取html文件,在下划线处应填写的选项为_.
Reader in = new __________(new URL(urlString).openStream());
A. Reader
B. DataOutputStream
C. ByteArrayInputStream
D. InputStreamReader
正确选项:D
当输入一个字节流时,要 ( )
A.实现DataInput接口
B.实现ObjectInput接口
C.Serializable接口
D.继承Reader抽象类
正确选项:A

本文介绍了Java中的字节流和字符流,字节流由InputStream和OutputStream为基础,适用于二进制数据,如图像和声音。字符流基于Reader和Writer,用于处理文本数据。FileInputStream和FileOutputStream用于文件的读写。字符流通过InputStreamReader和OutputStreamWriter与字节流适配。此外,文章还提及了File类的方法,如创建目录。示例代码展示了如何将对象写入内存和从URL读取HTML文件,强调了字节流和字符流的使用场景。
949

被折叠的 条评论
为什么被折叠?



