java IO流

简介: java IO流

     按照“流”的数据流向,可以将其化分为:输入流和输出流。按照“流”中处理数据的单位,可以将其区分为:字节流和字符流。在java中,字节是占1个Byte,即8位;而字符是占2个Byte,即16位。字节流的抽象基类:


   InputStream,OutputStream


字符流的抽象基类:


 Reader,Writer


1.什么是IO


Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。


IO又分为流IO(java.io)和块IO(java.nio)


Java.io是大多数面向数据流的输入/输出类的主要软件包。此外,Java也对块传输提供支持,在核心库 java.nio中采用的便是块IO。


流IO的好处是简单易用,缺点是效率较低。块IO效率很高,但编程比较复杂。


这里先讲流IO。


2.流的基本概念


在电脑上的数据有三种存储方式,一种是外存,一种是内存,一种是缓存。比如电脑上的硬盘,磁盘,U盘等都是外存,在电脑上有内存条,缓存是在CPU里面的。外存的存储量最大,其次是内存,最后是缓存,但是外存的数据的读取最慢,其次是内存,缓存最快。这里总结从外存读取数据到内存以及将数据从内存写到外存中。对于内存和外存的理解,我们可以简单的理解为容器,即外存是一个容器,内存又是另外一个容器。那又怎样把放在外存这个容器内的数据读取到内存这个容器以及怎么把内存这个容器里的数据存到外存中呢?


在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:


标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流等等,java中将输入输出抽象称为流,就好像水管,将两个容器连接起来。将数据从外存中读取到内存中的称为输入流,将数据从内存写入外存中的称为输出流。


FileIntputStream和FileOutputStream类

File file=new File("C:\\Users\\Administrator\\Desktop\\text.txt");
        FileOutputStream fileOutputStream=new FileOutputStream(file);
        byte[] bytes = "hello world".getBytes();
        fileOutputStream.write(bytes);
        fileOutputStream.close();
        FileInputStream fileInputStream=new FileInputStream(file);
        byte[] bytes1=new byte[1024];
        int read = fileInputStream.read(bytes1);
        System.out.println("文件中的信息是"+new String(bytes1,0,read));
        fileInputStream.close();

FileReader和FileWriter类

 File file=new File("C:\\Users\\Administrator\\Desktop\\text.txt");
      FileWriter fileWriter=new FileWriter(file);
      String word="hello";
      fileWriter.write(word);
      fileWriter.close();
      FileReader fileReader=new FileReader(file);
      char[] message=new char[1024];
        int read = fileReader.read(message);
        System.out.println("读入的信息是"+new String(message,0,read));
        fileReader.close();

BufferedReader和BufferedWriter类

关闭流的时候要先关闭缓冲流,这里readLine读入一行数据,newLine写入一个行分隔符

 File file=new File("C:\\Users\\Administrator\\Desktop\\text.txt");
      String[] message=new String[]{"hello","word","helloword"};
      FileWriter fileWriter=new FileWriter(file);
      BufferedWriter bufferedWriter=new BufferedWriter(fileWriter);
      for(int i=0;i<message.length;i++){
          bufferedWriter.write(message[i]);
          bufferedWriter.newLine();
      }
      bufferedWriter.close();
      fileWriter.close();
      FileReader fileReader=new FileReader(file);
      BufferedReader bufferedReader=new BufferedReader(fileReader);
      String tmp=null;
      int i=1;
      while ((tmp=bufferedReader.readLine())!=null){
          System.out.println("第" +i+"行 "+tmp);
          i++;
      }
      bufferedReader.close();
        fileReader.close();
    }
相关文章
|
4月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
24天前
|
Java
java 中 IO 流
Java中的IO流是用于处理输入输出操作的机制,主要包括字节流和字符流两大类。字节流以8位字节为单位处理数据,如FileInputStream和FileOutputStream;字符流以16位Unicode字符为单位,如FileReader和FileWriter。这些流提供了读写文件、网络传输等基本功能。
42 9
|
2月前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
89 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
3月前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
2月前
|
Java 数据处理 开发者
揭秘Java IO流:字节流与字符流的神秘面纱!
揭秘Java IO流:字节流与字符流的神秘面纱!
40 1
|
2月前
|
自然语言处理 Java 数据处理
Java IO流全解析:字节流和字符流的区别与联系!
Java IO流全解析:字节流和字符流的区别与联系!
101 1
|
3月前
|
Java 大数据 API
Java 流(Stream)、文件(File)和IO的区别
Java中的流(Stream)、文件(File)和输入/输出(I/O)是处理数据的关键概念。`File`类用于基本文件操作,如创建、删除和检查文件;流则提供了数据读写的抽象机制,适用于文件、内存和网络等多种数据源;I/O涵盖更广泛的输入输出操作,包括文件I/O、网络通信等,并支持异常处理和缓冲等功能。实际开发中,这三者常结合使用,以实现高效的数据处理。例如,`File`用于管理文件路径,`Stream`用于读写数据,I/O则处理复杂的输入输出需求。
242 12
|
2月前
|
Java
Java 中 IO 流的分类详解
【10月更文挑战第10天】不同类型的 IO 流具有不同的特点和适用场景,我们可以根据具体的需求选择合适的流来进行数据的输入和输出操作。在实际应用中,还可以通过组合使用多种流来实现更复杂的功能。
63 0
|
2月前
|
存储 Java 程序员
【Java】文件IO
【Java】文件IO
39 0
|
3月前
|
数据采集 Java 数据挖掘
Java IO异常处理:在Web爬虫开发中的实践
Java IO异常处理:在Web爬虫开发中的实践
下一篇
DataWorks