seo证书考试网站,wordpress怎么写代码,网站建设的基本需求有哪些,怎么建设空包网站每文一句 每想拥抱你一次#xff0c;天空飘落一片雪#xff0c;至此雪花拥抱撒哈拉#xff01; —荷西 一、IO流开篇
1. 概念#xff1a;
IO#xff08;Input/Output#xff09;流是Java中用于处理输入和输出数据的机制。它允许程序与外部设备#xff08;如文件、网络…每文一句 每想拥抱你一次天空飘落一片雪至此雪花拥抱撒哈拉 —荷西 一、IO流开篇
1. 概念
IOInput/Output流是Java中用于处理输入和输出数据的机制。它允许程序与外部设备如文件、网络连接、内存等进行数据交换。IO流按照操作单位的不同可以分为字节流和字符流两种类型。
2. 流的分类
字节流Byte Streams以字节为单位进行操作适用于处理二进制数据或不需要进行字符编码转换的场景。主要的字节流类包括InputStream和OutputStream及其子类。字符流Character Streams以字符为单位进行操作适用于处理文本数据并支持字符编码转换。主要的字符流类包括Reader和Writer及其子类。
3. IO流的作用
实现数据的输入和输出通过IO流可以从外部源中读取数据到程序中或者将程序中的数据写入到外部源中。处理文件操作可以通过IO流读取、写入文件实现文件的读取、写入和操作。网络通信通过IO流可以实现网络通信包括建立Socket连接、传输数据等。
4. IO流的使用场景
文件操作读取、写入和处理文件。网络编程建立Socket连接进行网络通信。数据处理通过IO流实现数据的输入、输出和处理包括序列化、反序列化等操作。图像处理读取、写入图像文件并进行图像处理操作。
二、字节流
字节流常用类
字节流是Java中处理字节数据的流主要用于处理二进制数据或不需要进行字符编码转换的情况。以下是常用的字节流类
1. InputStream输入流及其子类
FileInputStream用于从文件中读取数据的输入流。ByteArrayInputStream从内存中的字节数组中读取数据的输入流。BufferedInputStream带有缓冲区的输入流可以提高读取性能。DataInputStream读取基本数据类型的输入流例如int、double等。ObjectInputStream用于反序列化对象的输入流可以将对象从字节流中恢复为原来的对象。
2. OutputStream输出流及其子类
FileOutputStream用于向文件中写入数据的输出流。ByteArrayOutputStream将数据写入到内存中的字节数组的输出流。BufferedOutputStream带有缓冲区的输出流可以提高写入性能。DataOutputStream写入基本数据类型的输出流例如int、double等。ObjectOutputStream用于序列化对象的输出流可以将对象转换为字节流进行持久化存储。
字节流使用案例
1. FileInputStream文件输入流
简单介绍 用于从文件中读取数据的输入流。应用场景 读取文件内容进行数据处理和分析。代码演示import java.io.FileInputStream;
import java.io.IOException;public class FileInputStreamExample {public static void main(String[] args) {try (FileInputStream fis new FileInputStream(example.txt)) {int data;while ((data fis.read()) ! -1) {System.out.print((char) data);}} catch (IOException e) {e.printStackTrace();}}
}2. FileOutputStream文件输出流
简单介绍 用于向文件中写入数据的输出流。应用场景 将程序中的数据写入文件如日志记录、数据持久化等。代码演示import java.io.FileOutputStream;
import java.io.IOException;public class FileOutputStreamExample {public static void main(String[] args) {String data Hello, FileOutputStream!;try (FileOutputStream fos new FileOutputStream(output.txt)) {fos.write(data.getBytes());} catch (IOException e) {e.printStackTrace();}}
}3. ByteArrayInputStream字节数组输入流
简单介绍 从字节数组中读取数据的输入流。应用场景 将字节数组作为数据源进行数据的读取和处理。代码演示import java.io.ByteArrayInputStream;
import java.io.IOException;public class ByteArrayInputStreamExample {public static void main(String[] args) {byte[] bytes {72, 101, 108, 108, 111};try (ByteArrayInputStream bais new ByteArrayInputStream(bytes)) {int data;while ((data bais.read()) ! -1) {System.out.print((char) data);}} catch (IOException e) {e.printStackTrace();}}
}4. ByteArrayOutputStream字节数组输出流
简单介绍 将数据写入到字节数组的输出流。应用场景 将程序中的数据写入字节数组便于数据传输和处理。代码演示import java.io.ByteArrayOutputStream;
import java.io.IOException;public class ByteArrayOutputStreamExample {public static void main(String[] args) {String data Hello, ByteArrayOutputStream!;try (ByteArrayOutputStream baos new ByteArrayOutputStream()) {baos.write(data.getBytes());byte[] result baos.toByteArray();System.out.println(new String(result));} catch (IOException e) {e.printStackTrace();}}
}5. BufferedInputStream缓冲输入流
简单介绍 带有缓冲区的输入流提高读取性能。应用场景 从文件中读取大量数据时通过缓冲区减少IO操作次数提升读取效率。代码演示import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;public class BufferedInputStreamExample {public static void main(String[] args) {try (BufferedInputStream bis new BufferedInputStream(new FileInputStream(example.txt))) {int data;while ((data bis.read()) ! -1) {System.out.print((char) data);}} catch (IOException e) {e.printStackTrace();}}
}6. BufferedOutputStream缓冲输出流
简单介绍 带有缓冲区的输出流提高写入性能。应用场景 向文件中写入大量数据时通过缓冲区减少IO操作次数提升写入效率。代码演示import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class BufferedOutputStreamExample {public static void main(String[] args) {String data Hello, BufferedOutputStream!;try (BufferedOutputStream bos new BufferedOutputStream(new FileOutputStream(output.txt))) {bos.write(data.getBytes());} catch (IOException e) {e.printStackTrace();}}
}7. DataInputStream数据输入流
简单介绍 读取基本数据类型的数据的输入流。应用场景 读取通过DataOutputStream写入的基本数据类型数据。代码演示import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;public class DataInputStreamExample {public static void main(String[] args) {try (DataInputStream dis new DataInputStream(new FileInputStream(data.bin))) {int intValue dis.readInt();double doubleValue dis.readDouble();System.out.println(Int value: intValue);System.out.println(Double value: doubleValue);} catch (IOException e) {e.printStackTrace();}}
}8. DataOutputStream数据输出流
简单介绍 将基本数据类型的数据写入文件的输出流。应用场景 将程序中的基本数据类型数据写入文件便于持久化存储。代码演示import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class DataOutputStreamExample {public static void main(String[] args) {try (DataOutputStream dos new DataOutputStream(new FileOutputStream(data.bin))) {int intValue 42;double doubleValue 3.14;dos.writeInt(intValue);dos.writeDouble(doubleValue);} catch (IOException e) {e.printStackTrace();}}
}9. ObjectInputStream对象输入流
简单介绍 用于反序列化对象的输入流可以将对象从字节流中恢复为原来的对象。应用场景 用于读取通过 ObjectOutputStream 序列化的对象数据恢复为原来的对象。代码演示import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;public class ObjectInputStreamExample {public static void main(String[] args) {try (ObjectInputStream ois new ObjectInputStream(new FileInputStream(object.bin))) {// 从文件中读取对象MyClass obj (MyClass) ois.readObject();System.out.println(Object read from file: obj);} catch (IOException | ClassNotFoundException e) {e.printStackTrace();}}
}10. ObjectOutputStream对象输出流
简单介绍 用于将对象序列化为字节流并写入文件的输出流可以将对象持久化存储。应用场景 用于将程序中的对象数据序列化为字节流保存到文件中或传输到网络。代码演示import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;public class ObjectOutputStreamExample {public static void main(String[] args) {MyClass obj new MyClass(John, 30);try (ObjectOutputStream oos new ObjectOutputStream(new FileOutputStream(object.bin))) {// 将对象写入文件oos.writeObject(obj);System.out.println(Object written to file: obj);} catch (IOException e) {e.printStackTrace();}}
}三、字符流
字符流常用类
字符流是Java中处理字符数据的流主要用于处理文本数据并支持字符编码转换。以下是常用的字符流类
1. Reader读取字符流及其子类
FileReader从文件中读取字符数据的字符输入流。BufferedReader带有缓冲区的字符输入流提高读取性能。InputStreamReader将字节流转换为字符流的桥梁支持指定字符编码。StringReader从字符串中读取字符数据的字符输入流。
2. Writer写入字符流及其子类
FileWriter向文件中写入字符数据的字符输出流。BufferedWriter带有缓冲区的字符输出流提高写入性能。OutputStreamWriter将字符流转换为字节流的桥梁支持指定字符编码。StringWriter将字符数据写入到字符串中的字符输出流。
字符流使用案例
1. FileReader文件读取字符流
简单介绍 用于从文件中读取字符数据的字符输入流。应用场景 读取文本文件中的内容进行处理或分析。代码演示import java.io.FileReader;
import java.io.IOException;public class FileReaderExample {public static void main(String[] args) {try (FileReader reader new FileReader(example.txt)) {int character;while ((character reader.read()) ! -1) {System.out.print((char) character);}} catch (IOException e) {e.printStackTrace();}}
}2. FileWriter文件写入字符流
简单介绍 用于向文件中写入字符数据的字符输出流。应用场景 将程序中生成的文本数据写入文件如日志记录等。代码演示import java.io.FileWriter;
import java.io.IOException;public class FileWriterExample {public static void main(String[] args) {String data Hello, FileWriter!;try (FileWriter writer new FileWriter(output.txt)) {writer.write(data);} catch (IOException e) {e.printStackTrace();}}
}3. BufferedReader带缓冲的字符读取流
简单介绍 带有缓冲区的字符输入流可以提高读取性能。应用场景 从文件中读取大量字符数据时通过缓冲区减少IO操作次数提升读取效率。代码演示import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;public class BufferedReaderExample {public static void main(String[] args) {try (BufferedReader reader new BufferedReader(new FileReader(example.txt))) {String line;while ((line reader.readLine()) ! null) {System.out.println(line);}} catch (IOException e) {e.printStackTrace();}}
}4. BufferedWriter带缓冲的字符写入流
简单介绍 带有缓冲区的字符输出流可以提高写入性能。应用场景 向文件中写入大量字符数据时通过缓冲区减少IO操作次数提升写入效率。代码演示import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;public class BufferedWriterExample {public static void main(String[] args) {String data Hello, BufferedWriter!;try (BufferedWriter writer new BufferedWriter(new FileWriter(output.txt))) {writer.write(data);} catch (IOException e) {e.printStackTrace();}}
}5. InputStreamReader字节流到字符流的桥梁
简单介绍 将字节流转换为字符流的桥梁支持指定字符编码。应用场景 从字节流中读取字符数据并根据指定的字符编码转换为字符流。代码演示import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;public class InputStreamReaderExample {public static void main(String[] args) {try (InputStreamReader isr new InputStreamReader(new FileInputStream(example.txt), UTF-8)) {int character;while ((character isr.read()) ! -1) {System.out.print((char) character);}} catch (IOException e) {e.printStackTrace();}}
}6. OutputStreamWriter字符流到字节流的桥梁
简单介绍 将字符流转换为字节流的桥梁支持指定字符编码。应用场景 将字符数据转换为字节流并根据指定的字符编码写入到字节流中。代码演示import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;public class OutputStreamWriterExample {public static void main(String[] args) {String data Hello, OutputStreamWriter!;try (OutputStreamWriter osw new OutputStreamWriter(new FileOutputStream(output.txt), UTF-8)) {osw.write(data);} catch (IOException e) {e.printStackTrace();}}
}7. StringReader从字符串读取字符流
简单介绍 从字符串中读取字符数据的字符输入流。应用场景 将字符串数据作为输入源进行字符数据的读取和处理。代码演示import java.io.StringReader;
import java.io.IOException;public class StringReaderExample {public static void main(String[] args) {String data Hello, StringReader!;try (StringReader reader new StringReader(data)) {int character;while ((character reader.read()) ! -1) {System.out.print((char) character);}} catch (IOException e) {e.printStackTrace();}}
}8. StringWriter写入字符到字符串
简单介绍 将字符数据写入到字符串中的字符输出流。应用场景 将程序中生成的字符数据写入字符串中方便后续处理或输出。代码演示import java.io.StringWriter;
import java.io.IOException;public class StringWriterExample {public static void main(String[] args) {try (StringWriter writer new StringWriter()) {String data Hello, StringWriter!;writer.write(data);System.out.println(writer.toString());} catch (IOException e) {e.printStackTrace();}}
}四、完结撒花ING