下面就来详细讲解Java中流的有关知识点。
流的概念
Java中的流(Stream)是指一系列有序的字节或字符,以特定的方式从源(输入流)或到目的地(输出流)传输(I/O流即Input/Output Stream)。流的本质是对数据传输的抽象。Java中的流主要分为字节流和字符流。
字节流
字节流是以字节为单位进行读写操作,主要有InputStream和OutputStream两个抽象类,它们是所有字节输入输出流的父类。
FileInputStream
FileInputStream 是 FileInputStream 是 InputStream 的子类,它用于打开文件输入流读取文件。
示例:
import java.io.FileInputStream;
public class FileInputStreamTest {
public static void main(String[] args) {
try {
FileInputStream inputStream = new FileInputStream("test.txt");
int b = 0;
while ((b = inputStream.read()) != -1) {
System.out.print((char) b);
}
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
FileOutputStream
FileOutputStream 是 OutputStream 的子类,它用于打开文件输出流写入文件。
示例:
import java.io.FileOutputStream;
public class FileOutputStreamTest {
public static void main(String[] args) {
try {
FileOutputStream outputStream = new FileOutputStream("test.txt");
String s = "Hello, world!";
for (int i = 0; i < s.length(); i++) {
outputStream.write((int) s.charAt(i));
}
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
字符流
字符流是以字符为单位进行读写操作,主要有Reader和Writer两个抽象类,它们是所有字符输入输出流的父类。
FileReader
FileReader 是 Reader 的子类,它用于打开文件输入流读取文件,与 FileInputStream 不同,FileReader 是用于读取字符而非字节。
示例:
import java.io.FileReader;
public class FileReaderTest {
public static void main(String[] args) {
try {
FileReader reader = new FileReader("test.txt");
int b = 0;
while ((b = reader.read()) != -1) {
System.out.print((char) b);
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
FileWriter
FileWriter 是 Writer 的子类,它用于打开文件输出流写入文件,与 FileOutputStream 不同,FileWriter 是用于写入字符而非字节。
示例:
import java.io.FileWriter;
public class FileWriterTest {
public static void main(String[] args) {
try {
FileWriter writer = new FileWriter("test.txt");
String s = "Hello, world!";
writer.write(s, 0, s.length());
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
小结
通过以上示例,我们可以看到字节流和字符流的使用方法。在实际开发中,应根据实际需求选择合适的流进行操作,以提高程序性能和效率。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中流的有关知识点详解 - Python技术站