当前位置: 首页 > news >正文

网站建设课程设计目的和内容黄页88

网站建设课程设计目的和内容,黄页88,网站制作的评价标准,社区团购小程序怎么做Java I/O 流体系详解及各类使用示例 Java I/O(输入/输出)流体系是Java处理数据输入输出的核心API,提供了丰富的类库来支持各种数据源的读写操作。下面我将全面讲解Java I/O流体系,并为每个主要类提供具体的使用示例。 一、I/O流…

Java I/O 流体系详解及各类使用示例

Java I/O(输入/输出)流体系是Java处理数据输入输出的核心API,提供了丰富的类库来支持各种数据源的读写操作。下面我将全面讲解Java I/O流体系,并为每个主要类提供具体的使用示例。

一、I/O流体系总体架构

Java I/O流主要分为两大类:

  1. 字节流(Byte Streams):以字节(8位)为单位进行读写

    • 核心抽象类:InputStreamOutputStream
  2. 字符流(Character Streams):以字符(16位Unicode)为单位进行读写

    • 核心抽象类:ReaderWriter

二、字节流体系详解与示例

1. 输入流(InputStream)体系

(1) FileInputStream - 文件字节输入流
// 读取文件内容到字节数组
try (InputStream is = new FileInputStream("test.txt")) {byte[] buffer = new byte[1024];int bytesRead;while ((bytesRead = is.read(buffer)) != -1) {System.out.write(buffer, 0, bytesRead);}
} catch (IOException e) {e.printStackTrace();
}
(2) ByteArrayInputStream - 字节数组输入流
byte[] data = "Hello World".getBytes();
try (InputStream is = new ByteArrayInputStream(data)) {int content;while ((content = is.read()) != -1) {System.out.print((char) content);}
}
(3) BufferedInputStream - 缓冲字节输入流
// 使用缓冲提高读取效率
try (InputStream is = new BufferedInputStream(new FileInputStream("largefile.dat"))) {byte[] buffer = new byte[8192];int bytesRead;while ((bytesRead = is.read(buffer)) != -1) {// 处理数据}
}
(4) DataInputStream - 基本数据类型输入流
// 读取基本数据类型
try (DataInputStream dis = new DataInputStream(new FileInputStream("data.bin"))) {int i = dis.readInt();double d = dis.readDouble();boolean b = dis.readBoolean();System.out.println(i + ", " + d + ", " + b);
}
(5) ObjectInputStream - 对象反序列化流
// 反序列化对象
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("object.dat"))) {Person person = (Person) ois.readObject();System.out.println(person);
} catch (ClassNotFoundException e) {e.printStackTrace();
}

2. 输出流(OutputStream)体系

(1) FileOutputStream - 文件字节输出流
// 写入字节到文件
try (OutputStream os = new FileOutputStream("output.txt")) {byte[] data = "Hello Java IO".getBytes();os.write(data);
}
(2) ByteArrayOutputStream - 字节数组输出流
// 将数据写入内存中的字节数组
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {baos.write("Hello".getBytes());baos.write(" World".getBytes());byte[] result = baos.toByteArray();System.out.println(new String(result));
}
(3) BufferedOutputStream - 缓冲字节输出流
// 使用缓冲提高写入效率
try (OutputStream os = new BufferedOutputStream(new FileOutputStream("largefile.dat"))) {for (int i = 0; i < 100000; i++) {os.write(i);}
}
(4) DataOutputStream - 基本数据类型输出流
// 写入基本数据类型
try (DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.bin"))) {dos.writeInt(123);dos.writeDouble(3.14);dos.writeBoolean(true);
}
(5) ObjectOutputStream - 对象序列化流
// 序列化对象
Person person = new Person("张三", 25);
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.dat"))) {oos.writeObject(person);
}
(6) PrintStream - 格式化输出流
// 格式化输出
try (PrintStream ps = new PrintStream("print.txt")) {ps.println("Hello PrintStream");ps.printf("PI = %.2f", Math.PI);
}

三、字符流体系详解与示例

1. 读取流(Reader)体系

(1) InputStreamReader - 字节流转字符流
// 将字节流转换为字符流
try (Reader reader = new InputStreamReader(new FileInputStream("text.txt"), "UTF-8")) {int data;while ((data = reader.read()) != -1) {System.out.print((char) data);}
}
(2) FileReader - 文件字符输入流
// 读取文本文件
try (Reader reader = new FileReader("text.txt")) {char[] buffer = new char[1024];int charsRead;while ((charsRead = reader.read(buffer)) != -1) {System.out.print(new String(buffer, 0, charsRead));}
}
(3) BufferedReader - 缓冲字符输入流
// 逐行读取文本文件
try (BufferedReader br = new BufferedReader(new FileReader("text.txt"))) {String line;while ((line = br.readLine()) != null) {System.out.println(line);}
}
(4) StringReader - 字符串读取流
// 从字符串读取
String data = "Hello StringReader";
try (Reader reader = new StringReader(data)) {int ch;while ((ch = reader.read()) != -1) {System.out.print((char) ch);}
}

2. 写入流(Writer)体系

(1) OutputStreamWriter - 字符流转字节流
// 将字符流写入字节流
try (Writer writer = new OutputStreamWriter(new FileOutputStream("output.txt"), "UTF-8")) {writer.write("Hello OutputStreamWriter");
}
(2) FileWriter - 文件字符输出流
// 写入文本文件
try (Writer writer = new FileWriter("output.txt")) {writer.write("Hello FileWriter");
}
(3) BufferedWriter - 缓冲字符输出流
// 高效写入文本文件
try (BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"))) {bw.write("Line 1");bw.newLine();bw.write("Line 2");
}
(4) StringWriter - 字符串写入流
// 将数据写入字符串
try (StringWriter sw = new StringWriter()) {sw.write("Hello ");sw.write("StringWriter");String result = sw.toString();System.out.println(result);
}
(5) PrintWriter - 格式化字符输出流
// 格式化输出到文件
try (PrintWriter pw = new PrintWriter("print.txt")) {pw.println("Hello PrintWriter");pw.printf("Today is %tF", new Date());
}

四、NIO (New I/O) 示例

1. 文件复制(NIO)

Path source = Paths.get("source.txt");
Path target = Paths.get("target.txt");
try {Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {e.printStackTrace();
}

2. 使用Channel和Buffer读取文件

try (FileChannel channel = FileChannel.open(Paths.get("data.txt"))) {ByteBuffer buffer = ByteBuffer.allocate(1024);while (channel.read(buffer) > 0) {buffer.flip();while (buffer.hasRemaining()) {System.out.print((char) buffer.get());}buffer.clear();}
}

五、Java 7 NIO.2 增强示例

1. 遍历目录

Path dir = Paths.get(".");
try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir)) {for (Path entry : stream) {System.out.println(entry.getFileName());}
}

2. 异步文件读取

AsynchronousFileChannel channel = AsynchronousFileChannel.open(Paths.get("largefile.txt"));
ByteBuffer buffer = ByteBuffer.allocate(1024);
channel.read(buffer, 0, buffer, new CompletionHandler<Integer, ByteBuffer>() {@Overridepublic void completed(Integer result, ByteBuffer attachment) {System.out.println("Read completed: " + result + " bytes");}@Overridepublic void failed(Throwable exc, ByteBuffer attachment) {exc.printStackTrace();}});

六、总结

Java I/O流体系提供了丰富的API来处理各种输入输出需求:

  1. 字节流:处理二进制数据,核心类是InputStreamOutputStream
  2. 字符流:处理文本数据,核心类是ReaderWriter
  3. 装饰器模式:通过组合方式扩展功能(如缓冲、数据类型支持等)
  4. NIO:提供非阻塞I/O、内存映射文件等高效操作
  5. NIO.2:进一步简化文件操作,增加异步I/O支持

在实际开发中,应根据具体需求选择合适的I/O类和方法。对于文本处理优先使用字符流,二进制数据处理使用字节流,大文件或高性能需求考虑NIO。同时,使用try-with-resources语句确保资源正确释放。

http://www.cadmedia.cn/news/9880.html

相关文章:

  • 公司部门设置seo推广软件代理
  • 网站建设类的职位模板免费网站建设
  • o2o网站建设服务在线培训网站次要关键词
  • 政府查询网站建设方案百度产品大全
  • 不锈钢公司网站源码 网站建设 产品3级分类asp源码合肥今日头条新闻
  • 太原市建设银行网站首页seo需求
  • 西安网站建设动力无限东莞疫情最新消息通知
  • 网页版免费360网站关键词排名优化
  • 厦门市建设局新网站下载百度软件
  • 网站建设 广州西安百度公司开户
  • 山东省建设厅发改委官方网站百度电话人工服务
  • 开发公司的盈利模式关键词优化公司排名
  • 柳州网站设计新东方
  • 智汇团建网站登录平台在线seo诊断
  • 东京热 在线A视频网站一级做爰片赚钱软件
  • 专业网站建设机构免费推广网站地址大全
  • 怎么建立一个网站网址优秀软文范例800字
  • 网站制作设计培训多少钱百度视频免费下载
  • 怎么自己创建网站或者app搜索引擎营销的五大特点
  • 口碑营销和病毒营销的区别新余seo
  • 电子商务平台的功能有哪些app排名优化
  • 软件网站建设专业网站模板免费下载
  • 徐州模板自助建站查关键词排名网
  • 南宁软件优化网站建设四川网络推广推广机构
  • h5网站建设的具体内容电子商务seo
  • 重庆网站建设 最便宜草根seo视频大全网站
  • 公司想建网站网络营销论文题目
  • 阿里云服务器学生机seo优化运营
  • 苏州公司官网制作百度app关键词优化
  • 网站建设相关专业今日头条最新消息