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

扁平式的网站建设厅科技中心网站

扁平式的网站,建设厅科技中心网站,pc官网 和手机网站,临沂 网站优化Java IO 流操作详解 一、简介1. 什么是IO流2. IO流的分类3. IO流的作用 二、Java IO流的输入操作1. 文件输入流2. 字节输入流3. 缓冲输入流4. 对象输入流 三、Java IO流的输出操作1. 文件输出流2. 字节输出流3. 缓冲输出流4. 对象输出流 四、Java IO流的常用方法解析1. 字节读写… Java IO 流操作详解 一、简介1. 什么是IO流2. IO流的分类3. IO流的作用 二、Java IO流的输入操作1. 文件输入流2. 字节输入流3. 缓冲输入流4. 对象输入流 三、Java IO流的输出操作1. 文件输出流2. 字节输出流3. 缓冲输出流4. 对象输出流 四、Java IO流的常用方法解析1. 字节读写操作1.1 FileInputStream和FileOutputStream1.2 DataInputStream和DataOutputStream 2. 按字符读写操作2.1 FileReader和FileWriter2.2 BufferedReader和BufferedWriter 3. 随机读写文件操作3.1 RandomAccessFile 4. 大文件读写操作4.1 使用MappedByteBuffer 五、Java NIO模块1. NIO概述2. NIO与IO的对比3. NIO模块的核心组件3.1 Buffer3.2 Channel3.3 Selector 4. NIO模块的使用方式4.1 读取文件数据4.2 写入文件数据 一、简介 Java IO流提供了一种可以对数据进行输入输出的机制。可以把它比作是一条河流从源头流向目标地由源文件输入到程序再由程序输出到目标文件。 1. 什么是IO流 IO即Input/Output顾名思义就是数据的输入输出在Java中指的是java.io包中的类库提供了一系列操作数据输入与输出的类和接口。 2. IO流的分类 Java IO流按照其功能可以分为4种类型 字节流Byte Streams从字节流中读入或输出8位字节数据。InputStream 和 OutputStream 都是针对字节的流。字符流Character Streams从字符流中读入或输出16位Unicode字符。Reader 和 Writer 都是针对字符的流。节点流Node StreamsAdvanced 系列流如 FileInputStream、FileOutputStream。处理流Filter StreamsDecorator 系列流如 BufferedInputStream、BufferedOutputStream、ObjectInputStream、ObjectOutputStream。 3. IO流的作用 在Java中IO流的主要作用是将数据从一个地方传输到另一个地方。我们可以使用Java的IO流来实现从文件、控制台甚至是网络传输数据等功能。对于不同的需求可以灵活选择不同的IO流类型。 二、Java IO流的输入操作 Java IO流提供了多种输入操作的类和接口下面将分别介绍其中的四种。 1. 文件输入流 用于从文件中读取数据可以使用 java.io.FileInputStream 类来实现。 try {FileInputStream fis new FileInputStream(file.txt); // 指定文件路径int c;while ((c fis.read()) ! -1) { // 从文件中读取数据System.out.print((char)c); // 输出数据到控制台}fis.close(); // 关闭文件流 } catch (IOException e) {e.printStackTrace(); }2. 字节输入流 用于从数据源中读取字节数据可以使用 java.io.InputStream 类来实现。 try {InputStream is new FileInputStream(file.txt); // 指定数据源int c;while ((c is.read()) ! -1) { // 从数据源读取数据System.out.print((char)c); // 输出数据到控制台}is.close(); // 关闭数据流 } catch (IOException e) {e.printStackTrace(); }3. 缓冲输入流 提供了对 IO 字节输入流的缓存机制可以使用 java.io.BufferedInputStream 类来实现 try {InputStream is new FileInputStream(file.txt); // 指定数据源BufferedInputStream bis new BufferedInputStream(is); // 使用缓冲输入流读取数据int c;while ((c bis.read()) ! -1) { // 从缓冲输入流中读取数据System.out.print((char)c); // 输出数据到控制台}is.close(); // 关闭数据流 } catch (IOException e) {e.printStackTrace(); }4. 对象输入流 用于读取对象的相关信息可以使用 java.io.ObjectInputStream 类来实现 try {InputStream is new FileInputStream(file.txt); // 指定数据源ObjectInputStream ois new ObjectInputStream(is); // 使用对象输入流读取对象相关信息Object obj ois.readObject(); // 从对象输入流中读取对象相关信息并实例化为一个对象System.out.println(obj); // 输出读取到的对象is.close(); // 关闭数据流 } catch (IOException | ClassNotFoundException e) {e.printStackTrace(); }三、Java IO流的输出操作 Java IO流提供了多种输出操作的类和接口下面将分别介绍其中的四种。 1. 文件输出流 用于向文件中写入数据可以使用 java.io.FileOutputStream 类来实现 try {FileOutputStream fos new FileOutputStream(file.txt); // 指定输出文件路径String s Hello, World!; // 要写入文件的内容byte[] bytes s.getBytes(); // 将要写入的字符串转化为字节数组fos.write(bytes); // 向文件中写入字节数据fos.close(); // 关闭文件流 } catch (IOException e) {e.printStackTrace(); }2. 字节输出流 用于向数据源中输出字节数据可以使用 java.io.OutputStream 类来实现 try {OutputStream os new FileOutputStream(file.txt); // 指定数据源String s Hello, World!; // 要写入数据源的内容byte[] bytes s.getBytes(); // 将要写入的字符串转化为字节数组os.write(bytes); // 向数据源中写入字节数据os.close(); // 关闭数据流 } catch (IOException e) {e.printStackTrace(); }3. 缓冲输出流 提供了对 IO 字节输出流的缓存机制可以使用 java.io.BufferedOutputStream 类来实现 try {OutputStream os new FileOutputStream(file.txt); // 指定数据源BufferedOutputStream bos new BufferedOutputStream(os); // 使用缓冲输出流写入数据源String s Hello, World!; // 要写入数据源的内容byte[] bytes s.getBytes(); // 将要写入的字符串转化为字节数组bos.write(bytes); // 向缓冲输出流中写入字节数据bos.flush(); // 刷新流数据到文件清空缓存os.close(); // 关闭数据流 } catch (IOException e) {e.printStackTrace(); }4. 对象输出流 用于将对象信息写入输出源可以使用 java.io.ObjectOutputStream 类来实现 try {OutputStream os new FileOutputStream(file.txt); // 指定数据源ObjectOutputStream oos new ObjectOutputStream(os); // 创建对象输出流Object obj new Object(); // 要写入数据源的对象oos.writeObject(obj); // 将对象信息写入输出源oos.flush(); // 刷新流数据到文件清空缓存os.close(); // 关闭数据流 } catch (IOException e) {e.printStackTrace(); }四、Java IO流的常用方法解析 1. 字节读写操作 1.1 FileInputStream和FileOutputStream import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;public class ByteStreamExample {public static void main(String[] args) {File inputFile new File(input.txt);File outputFile new File(output.txt);try (FileInputStream inputStream new FileInputStream(inputFile);FileOutputStream outputStream new FileOutputStream(outputFile)) {byte[] buffer new byte[1024];int length;while ((length inputStream.read(buffer)) ! -1) {outputStream.write(buffer, 0, length);}} catch (IOException e) {e.printStackTrace();}} }以上代码实现了从input.txt文件读取数据并写入到output.txt文件中。 1.2 DataInputStream和DataOutputStream import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;public class DataStreamExample {public static void main(String[] args) {File inputFile new File(input.txt);File outputFile new File(output.txt);try (DataInputStream inputStream new DataInputStream(new FileInputStream(inputFile));DataOutputStream outputStream new DataOutputStream(new FileOutputStream(outputFile))) {int intValue inputStream.readInt();outputStream.writeInt(intValue);boolean boolValue inputStream.readBoolean();outputStream.writeBoolean(boolValue);String strValue inputStream.readUTF();outputStream.writeUTF(strValue);} catch (IOException e) {e.printStackTrace();}} }以上代码实现了从input.txt文件中读取整型、布尔型和字符串类型数据然后将这些数据写入到output.txt文件中。 2. 按字符读写操作 2.1 FileReader和FileWriter import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException;public class CharStreamExample {public static void main(String[] args) {File inputFile new File(input.txt);File outputFile new File(output.txt);try (FileReader reader new FileReader(inputFile);FileWriter writer new FileWriter(outputFile)) {char[] buffer new char[1024];int length;while ((length reader.read(buffer)) ! -1) {writer.write(buffer, 0, length);}} catch (IOException e) {e.printStackTrace();}} }以上代码实现了从input.txt文件读取数据并写入到output.txt文件中。 2.2 BufferedReader和BufferedWriter import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException;public class BufferCharStreamExample {public static void main(String[] args) {try (BufferedReader reader new BufferedReader(new FileReader(input.txt));BufferedWriter writer new BufferedWriter(new FileWriter(output.txt))) {String line;while ((line reader.readLine()) ! null) {writer.write(line);writer.newLine();}} catch (IOException e) {e.printStackTrace();}} }以上代码实现了从input.txt文件读取数据并写入到output.txt文件中同时以行的形式进行读写。 3. 随机读写文件操作 3.1 RandomAccessFile import java.io.File; import java.io.IOException; import java.io.RandomAccessFile;public class RandomAccessFileExample {public static void main(String[] args) {File file new File(file.txt);try (RandomAccessFile randomAccessFile new RandomAccessFile(file, rw)) {randomAccessFile.writeBytes(Hello World!);randomAccessFile.seek(6);randomAccessFile.writeBytes(Java);} catch (IOException e) {e.printStackTrace();}} }以上代码实现了向file.txt文件中写入Hello World!然后从第6个字节开始替换为Java。 4. 大文件读写操作 4.1 使用MappedByteBuffer import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel;public class LargeFileExample {public static void main(String[] args) {File inputFile new File(input.txt);File outputFile new File(output.txt);try (FileInputStream inputStream new FileInputStream(inputFile);FileOutputStream outputStream new FileOutputStream(outputFile)) {FileChannel inputChannel inputStream.getChannel();FileChannel outputChannel outputStream.getChannel();MappedByteBuffer buffer inputChannel.map(FileChannel.MapMode.READ_ONLY, 0, inputChannel.size());outputChannel.write(buffer);} catch (IOException e) {e.printStackTrace();}} }以上代码实现了将input.txt文件中的数据复制到output.txt文件中如果读取的文件太大需要使用MappedByteBuffer来减少内存开销。 五、Java NIO模块 1. NIO概述 Java NIONew IO是JDK1.4引入的新的IO API能够以更高效的方式进行文件、网络读写等各种I/O操作。 2. NIO与IO的对比 IONIO面向流面向缓冲Buffer阻塞IO非阻塞IO无选择器Selector 3. NIO模块的核心组件 3.1 Buffer Buffer是一个对象可以容纳一定数量的数据并提供了一组方法用于访问这些数据。 3.2 Channel Channel是用于进行数据读写的对象它类似于IO流中的“管道”。 3.3 Selector Selector用于监听多个Channel上的事件如读、写等并通过一个线程实现多路复用。 4. NIO模块的使用方式 4.1 读取文件数据 import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; import java.util.EnumSet;public class NioExample {public static void main(String[] args) {Path path Paths.get(file.txt);try (FileChannel channel (FileChannel) Files.newByteChannel(path, EnumSet.of(StandardOpenOption.READ))) {ByteBuffer buffer ByteBuffer.allocate(1024);while (channel.read(buffer) ! -1) {buffer.flip();while (buffer.hasRemaining()) {System.out.print((char) buffer.get());}buffer.clear();}} catch (IOException e) {e.printStackTrace();}} }以上代码实现了从file.txt文件中读取数据并输出到控制台。其中FileChannel的read()方法用于读取文件数据ByteBuffer的flip()方法将缓冲区从写入状态切换到读取状态clear()方法则用于清空缓冲区。 4.2 写入文件数据 import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; import java.util.EnumSet;public class NioExample {public static void main(String[] args) {Path path Paths.get(file.txt);try (FileChannel channel (FileChannel) Files.newByteChannel(path, EnumSet.of(StandardOpenOption.WRITE))) {ByteBuffer buffer ByteBuffer.wrap(Hello World!.getBytes());channel.write(buffer);} catch (IOException e) {e.printStackTrace();}} }以上代码实现了向file.txt文件中写入数据“Hello World!”。其中FileChannel的write()方法用于写入文件数据ByteBuffer的wrap()方法用于把字节数组包装成缓冲区。
http://www.w-s-a.com/news/42643/

相关文章:

  • 建外贸网站费用手机排行榜zol
  • 长治网站制作的网站做网站要什么知识条件
  • discuz 做门户网站wordpress怎么添加图片不显示图片
  • 东营网站建设方案范文百度应用搜索
  • 网站 常见推广js代码放wordpress哪里
  • 靖江网站开发徐州住房和城乡建设局网站
  • 南宁网站建设公司如何为老板打造网站赚钱的wordpress optimizer
  • 做微商好还是开网站好网站网络推广
  • 网站建设岗位所需技能泊头网站优化
  • 企业网站建设是什么网络营销岗位介绍
  • 网站做cdn怎么弄昆明网站seo报价
  • 拖拽网站如何建立微网站
  • 网站网站做代理微信群卖房卡南宁建站模板大全
  • 网络公司怎么优化网站百度快速排名技术培训教程
  • 建e室内设计网 周婷站长工具seo综合查询源码
  • 塔式服务器主机建网站定制美瞳网站建设
  • 网站是先解析后备案吗永久免费网站模板
  • wordpress站点演示php根据ip 跳转网站
  • 东莞市凤岗建设局网站网站开发有哪些职位
  • 企业网站手机版模板免费下载辣条网站建设书
  • 南昌网站建设维护vc 做网站源码
  • 网站动态logo怎么做织梦移动端网站怎么做
  • 三亚城乡建设局网站app下载安装官方网站
  • 公司被其它人拿来做网站郑州哪家做网站最好
  • 山东省建设厅官方网站抖音代运营业务介绍
  • 网站制作 牛商网wordpress商城 微信支付
  • 平面设计培训网站建文帝网站建设
  • python网站建设佛山乐从网站建设
  • 网站 免费 托管运营app软件大全
  • 爱网站找不到了网站设计制作要交印花税