字节流 ->
java.io.OutputStream 抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地。它定义了字节输出流的基本共性功能方法。
java.io.InputStream 抽象类是表示字节输入流的所有类的超类,可以读取字节信息到内存中。它定义了字节输入流的基本共性功能方法。
FileOutputStream类与FileInputStream类实现文件读写。
由于OutputStream和InputStream是抽象类,要实现输入输出流的功能需要子类实现,FileOutputStream类与FileInputStream类可以实现字节输入流与输出流读写文件。
实例代码
package FileAndIO;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamDemo {
public static void main(String[] args) throws IOException {
//创建文件输入流以及文件输出流对象,指向demo.txt文件
FileOutputStream fileOut = new FileOutputStream("Demo//demo.txt");
FileInputStream fileInput = new FileInputStream("Demo//demo.txt");
//写入一个字符
fileOut.write(97);
//读出这个字符并打印
System.out.println((char) fileInput.read());
}
}
demo.txt文件
控制台:
这段代码非常完美的演示了字节输入/输出流的用法,下面来康康字符输出流
字符输入/输出流
java.io.Reader 抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存中。它定义了字符输入流的基本共性功能方法。
java.io.FileReader 类是Reader的子类,构造时使用系统默认的字符编码和默认字节缓冲区。
java.io.Writer 抽象类是表示用于写出字符流的所有类的超类,将指定的字符信息写出到目的地。它定义了字节输出流的基本共性功能方法。
java.io.FileWriter 类是写出字符到文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。
字符流与字节流的区别是,一个传输的是字节,一个是字节传输字符。
Demo代码
package FileAndIO;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileReadAndWriter {
public static void main(String[] args) throws IOException {
//创建字符流对象
FileWriter fileWriter = new FileWriter("Demo//demo.txt");
FileReader fileReader = new FileReader("Demo/demo.txt");
//单个写入字符
fileWriter.write("六");
fileWriter.write("六");
fileWriter.write("六");
fileWriter.flush();
//循环读取字符
int len = 0;
while((len = fileReader.read()) != -1) {
//输出打印字符,用char转型
System.out.println((char)len);
}
//结束关闭流对象
fileReader.close();
fileWriter.close();
}
}
文件内
控制台:
结束。。