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

建站费用报价单聊城开发区网络公司排名

建站费用报价单,聊城开发区网络公司排名,微信朋友圈广告在哪里做,北京网站制作郑州流的分类 按流向分 输入流:用于从数据源读取数据。像从文件、网络等读取数据时会用到,如 FileInputStream、BufferedReader。输出流:用于将数据写入到目的地。例如把数据写入文件、网络连接等,像 FileOutputStream、BufferedWri…

流的分类

按流向分
  • 输入流:用于从数据源读取数据。像从文件、网络等读取数据时会用到,如 FileInputStreamBufferedReader
  • 输出流:用于将数据写入到目的地。例如把数据写入文件、网络连接等,像 FileOutputStreamBufferedWriter

按数据处理单位分
  • 字节流:以字节(8 位)为单位处理数据,适用于处理二进制数据,像图片、音频、视频等。主要的基类是 InputStream和 OutputStream
  • 字符流:以字符(16 位)为单位处理数据,适合处理文本数据。主要的基类是 Reader 和 Writer

按功能分
  • 节点流:直接与数据源或目的地相连,如 FileInputStreamFileReader
  • 处理流:对节点流进行包装,提供额外的功能,如缓冲、加密等,像 BufferedInputStreamCipherOutputStream

字节流

InputStream

它是所有字节输入流的抽象基类,定义了读取字节数据的基本方法,如 read() 用于读取一个字节,read(byte[] b) 用于读取多个字节到字节数组中。

OutputStream

它是所有字节输出流的抽象基类,定义了写入字节数据的基本方法,如 write(int b) 用于写入一个字节,write(byte[] b) 用于写入字节数组。

示例:使用 FileInputStream 和 FileOutputStream 复制图片
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class ByteStreamCopyImage {public static void main(String[] args) {try (FileInputStream fis = new FileInputStream("source.jpg");FileOutputStream fos = new FileOutputStream("destination.jpg")) {int byteRead;while ((byteRead = fis.read()) != -1) {fos.write(byteRead);}System.out.println("图片复制成功");} catch (IOException e) {e.printStackTrace();}}
}

字符流

Reader

它是所有字符输入流的抽象基类,定义了读取字符数据的基本方法,如 read() 用于读取一个字符,read(char[] cbuf) 用于读取多个字符到字符数组中。

Writer

它是所有字符输出流的抽象基类,定义了写入字符数据的基本方法,如 write(int c) 用于写入一个字符,write(char[] cbuf) 用于写入字符数组。

示例:使用 FileReader 和 FileWriter 复制文本文件
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;public class CharacterStreamCopyText {public static void main(String[] args) {try (FileReader fr = new FileReader("source.txt");FileWriter fw = new FileWriter("destination.txt")) {int charRead;while ((charRead = fr.read()) != -1) {fw.write(charRead);}System.out.println("文本文件复制成功");} catch (IOException e) {e.printStackTrace();}}
}

缓冲流

缓冲字节流
  • BufferedInputStream:对 InputStream 进行包装,提供缓冲功能,减少与数据源的交互次数,提高读取效率。
  • BufferedOutputStream:对 OutputStream 进行包装,提供缓冲功能,减少与目的地的交互次数,提高写入效率。

缓冲字符流
  • BufferedReader:对 Reader 进行包装,提供缓冲功能,还提供了 readLine() 方法用于读取一行文本。
  • BufferedWriter:对 Writer 进行包装,提供缓冲功能,还提供了 newLine() 方法用于写入换行符。

示例:使用 BufferedReader 和 BufferedWriter 逐行复制文本文件
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;public class BufferedStreamCopyText {public static void main(String[] args) {try (BufferedReader br = new BufferedReader(new FileReader("source.txt"));BufferedWriter bw = new BufferedWriter(new FileWriter("destination.txt"))) {String line;while ((line = br.readLine()) != null) {bw.write(line);bw.newLine();}System.out.println("文本文件逐行复制成功");} catch (IOException e) {e.printStackTrace();}}
}

对象流

ObjectInputStream 和 ObjectOutputStream

用于实现对象的序列化和反序列化。序列化是将对象转换为字节序列,反序列化是将字节序列恢复为对象。要实现序列化,对象的类必须实现 Serializable 接口。

示例:对象的序列化和反序列化
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;class Student implements Serializable {private static final long serialVersionUID = 1L;private String name;private int age;public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public int getAge() {return age;}
}public class ObjectStreamExample {public static void main(String[] args) {// 序列化对象try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("student.ser"))) {Student student = new Student("Alice", 20);oos.writeObject(student);System.out.println("对象序列化成功");} catch (IOException e) {e.printStackTrace();}// 反序列化对象try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("student.ser"))) {Student student = (Student) ois.readObject();System.out.println("对象反序列化成功");System.out.println("Name: " + student.getName());System.out.println("Age: " + student.getAge());} catch (IOException | ClassNotFoundException e) {e.printStackTrace();}}
}

文件操作

File 类

用于表示文件或目录的抽象路径名,可以进行文件和目录的创建、删除、重命名等操作。

示例:创建文件和目录
import java.io.File;
import java.io.IOException;public class FileOperationExample {public static void main(String[] args) {// 创建目录File dir = new File("testDir");if (dir.mkdir()) {System.out.println("目录创建成功");} else {System.out.println("目录创建失败");}// 创建文件File file = new File(dir, "testFile.txt");try {if (file.createNewFile()) {System.out.println("文件创建成功");} else {System.out.println("文件创建失败");}} catch (IOException e) {e.printStackTrace();}}
}

网络 I/O

Socket 和 ServerSocket

用于实现 TCP 网络通信。Socket 用于客户端与服务器建立连接,ServerSocket 用于服务器监听客户端的连接请求。

示例:简单的 TCP 服务器和客户端
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;// 服务器端
class TCPServer {public static void main(String[] args) {try (ServerSocket serverSocket = new ServerSocket(8888);Socket socket = serverSocket.accept();BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));PrintWriter out = new PrintWriter(socket.getOutputStream(), true)) {String inputLine;while ((inputLine = in.readLine()) != null) {System.out.println("客户端发送的消息: " + inputLine);out.println("服务器已收到消息: " + inputLine);}} catch (IOException e) {e.printStackTrace();}}
}// 客户端
class TCPClient {public static void main(String[] args) {try (Socket socket = new Socket("localhost", 8888);PrintWriter out = new PrintWriter(socket.getOutputStream(), true);BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in))) {String userInput;while ((userInput = stdIn.readLine()) != null) {out.println(userInput);System.out.println("服务器响应: " + in.readLine());}} catch (IOException e) {e.printStackTrace();}}
}

以上是I/O多个方面,希望能使你更好的了解与熟练的进行I/O的数据输入与输出

http://www.dtcms.com/a/563079.html

相关文章:

  • 搭建一个网站 优帮云应用商店app下载安装
  • 网站建设与优化及覆盖率方案php旅游类网站开发毕业设计
  • 网站建设排名的公司哪家好discuz可以做公司网站
  • 营销型网站标准网页源码用一个域名免费做网站
  • 网站建设制作人员招聘要求小说类网站功能建设
  • 兼职做网站的软件企业建站模板价格
  • 苏州做网站建设公司南通网站设计制作公司
  • wordpress的php.ini沈阳seo建站
  • 网站cms系统企业年金的好处和坏处
  • 茶叶网站模板免费下载青海省城乡和住房建设厅网站
  • 广州营销型网站建设费用免费看片网站
  • 县建设局 协会网站私人订制网站推荐
  • 计算机网络技术是干嘛的网站在线优化
  • 一个人网站运营怎么做网站后台统计代码
  • jsp网站开发 孟浩pdf简单又快的科学小制作
  • 国际网站怎么建设微商城开发用华网天下北京
  • 常用博客建站程序搜索引擎优化关键词选择的方法有哪些
  • 网站未在腾讯云备案沈阳市建设工程质量监督局网站
  • 优秀网站建设济南网站制作哪家专业
  • 东莞做网站it s实体电商app定制开发
  • 网站建设开发服务费怎么做分录如何制作一个网站包含多个网页
  • 嘉兴网站建设科技有限公司广东工程建设监理有限公司网站
  • Python每日一练---第一天:买卖股票的最佳时机
  • 网站可以做什么企业网站建设专家
  • 上海响应式网站开发深圳的网站建设公司哪家好
  • wordpress编辑富文seo推广有效果吗
  • 淮北论坛最新招聘信息网如何提升seo
  • 用dw做网站背景关于二手书的网站开发ppt
  • 企业品牌网站建设首选公司网站搭建修改收费依据
  • 河南企业建设网站网站建设的课件