赞
踩
每想拥抱你一次,天空飘落一片雪,至此雪花拥抱撒哈拉! —荷西
IO(Input/Output)流是Java中用于处理输入和输出数据的机制。它允许程序与外部设备(如文件、网络连接、内存等)进行数据交换。IO流按照操作单位的不同可以分为字节流和字符流两种类型。
字节流是Java中处理字节数据的流,主要用于处理二进制数据或不需要进行字符编码转换的情况。以下是常用的字节流类:
FileInputStream
:用于从文件中读取数据的输入流。ByteArrayInputStream
:从内存中的字节数组中读取数据的输入流。BufferedInputStream
:带有缓冲区的输入流,可以提高读取性能。DataInputStream
:读取基本数据类型的输入流,例如int
、double
等。ObjectInputStream
:用于反序列化对象的输入流,可以将对象从字节流中恢复为原来的对象。FileOutputStream
:用于向文件中写入数据的输出流。ByteArrayOutputStream
:将数据写入到内存中的字节数组的输出流。BufferedOutputStream
:带有缓冲区的输出流,可以提高写入性能。DataOutputStream
:写入基本数据类型的输出流,例如int
、double
等。ObjectOutputStream
:用于序列化对象的输出流,可以将对象转换为字节流进行持久化存储。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();
}
}
}
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();
}
}
}
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(); } } }
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();
}
}
}
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(); } } }
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();
}
}
}
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(); } } }
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(); } } }
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();
}
}
}
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中处理字符数据的流,主要用于处理文本数据并支持字符编码转换。以下是常用的字符流类:
FileReader
:从文件中读取字符数据的字符输入流。BufferedReader
:带有缓冲区的字符输入流,提高读取性能。InputStreamReader
:将字节流转换为字符流的桥梁,支持指定字符编码。StringReader
:从字符串中读取字符数据的字符输入流。FileWriter
:向文件中写入字符数据的字符输出流。BufferedWriter
:带有缓冲区的字符输出流,提高写入性能。OutputStreamWriter
:将字符流转换为字节流的桥梁,支持指定字符编码。StringWriter
:将字符数据写入到字符串中的字符输出流。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();
}
}
}
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();
}
}
}
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(); } } }
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();
}
}
}
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(); } } }
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();
}
}
}
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(); } } }
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();
}
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。