IO流简介:
在Java中,IO流是用于处理输入和输出的一种机制。 Java提供了许多类和接口,用于读取和写入不同类型的数据。
Java的IO流可以分为两种类型:字节流和字符流。
字节流:字节流以字节为单位进行数据传输。它们通常用于处理二进制数据或未经过处理的原始数据。Java提供了两个基本的字节流类:InputStream和OutputStream。
字符流:字符流以字符为单位进行数据传输。它们通常用于处理文本数据。Java提供了两个基本的字符流类:Reader和Writer。
IO流使用步骤:
-
创建流对象:根据需要选择合适的流类型,创建对应的流对象。
-
打开流:通过调用流对象的open方法,打开流连接到指定的数据源或目标。
-
读取或写入数据:通过流对象提供的方法,进行数据的读取或写入操作。
-
关闭流:在使用完流后,通过调用流对象的close方法,关闭流连接。
字符流代码示例:
文件读取:
public static void main(String[] args) throws Exception {//必须抛出异常 FileReader fr=new FileReader("studeng.txt");//创建读取文件的fr对象,并指向studeng.txt int ch; while((ch=fr.read())!=-1){//read()方法返回的是int类型,所以用int接收并判断最后一个字符 为-1; System.out.print((char)ch);//再将输出转换成char类型; } fr.close();//最后必须将流给关闭,以免占用资源 }运行截图:
文件内容:
文件写入:
public static void main(String[] args) throws Exception {//抛出异常 FileWriter fw=new FileWriter("studeng.txt");//创建写入的文件fw对象 fw.write("01-王伟-20-上海");//文件内容写入; fw.close();//写入流的关闭 System.out.println("写入成功");//写入成功的提示 }
运行截图
文件内容:
若是需要再原有文件的基础上再写入新的字符的时候,只需要在创建写入对象在加一个true的参数即可,比如:
FileWriter fw=new FileWriter("studeng.txt",true);//在此加入true参数 fw.write(" 08-张三-22-北京 "); fw.close(); System.out.println("写入成功");
BufferedReader类:
BufferedReader类是Java IO库中的一个类,用于从字符输入流中读取文本。它继承自Reader类,提供了一种方便的读取文本的方法。
BufferedReader类的使用一般分为以下几个步骤:
- 创建一个BufferedReader对象,需要传入一个Reader对象作为参数,指定要读取的字符输入流。
- 使用read()方法从输入流中读取一个字符,返回的是读取的字符的ASCII码值,如果已经到达流的末尾则返回-1。也可以使用read(char[] cbuf)方法读取一段字符,将读取的字符存储到数组中,并返回读取的字符数。
- 使用readLine()方法读取一行字符,返回的是读取的一行字符,如果已经到达流的末尾则返回null。
- 使用close()方法关闭输入流。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;public class ReadFile {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);}
reader.close();
}
}
BufferedWriter类:
BufferedWriter类是Java中用于向输出流中写入文本数据的字符输出流。它继承自Writer类,并且提供了缓冲机制,可以提高写入数据的效率。
BufferedWriter类的常用构造方法有以下两种:
- BufferedWriter(Writer out):创建一个新的缓冲字符输出流,使用默认大小的缓冲区。
- BufferedWriter(Writer out, int bufferSize):创建一个新的缓冲字符输出流,指定缓冲区的大小。
BufferedWriter类主要提供了以下几个常用方法:
- write(int c):将指定的字符写入输出流。
- write(char[] cbuf, int off, int len):将指定字符数组的一部分写入输出流。
- write(String str, int off, int len):将指定字符串的一部分写入输出流。
- newLine():写入一个行分隔符,这个行分隔符由系统属性定义。
- flush():刷新缓冲区,将缓冲区中的数据写入输出流。
- close():关闭输出流。
public class WirteFile {
public static void main(String[] args) throws Exception {
BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt")) {
writer.write("Hello, Java!");
writer.newLine();
writer.write("This is my test.");
writer.close();
}
}
IO的读写类都可以在API帮助文档中查找到相关使用方法,如果不会可以查看API文档。