• IO字节流。


    字节输出流:

    java.io.OutputStream :抽象类,是表示输出字节流的所有类的父类。

    java.io.FileOutputStream extends OutputStream: 文件字节输出流。

      作用:把内存中的数据写入硬盘文件。

      构造方法: FileOutputStream(String name),创建一个向指定名称的文件写入数据的输出流。

           FileOutputStream(File file) ,创建一个向指定File对象的文件中写入数据的输出流。

      构造方法的作用:1、创建一个FileOutputStream对象。

               2、根据构造方法中的文件/文件路径,创建一个空文件。

               3、把FileOutputStream 对象指向该文件。

      使用步骤:1、创建FileOutputStream对象。2、write方法写数据。3、释放资源。

    write方法:

    public class main {
        public static void main(String[] args) throws IOException {
           File file=new File("C:\Users\天\Desktop\a.txt");
            FileOutputStream fos=new FileOutputStream(file);
            fos.write(12);
            fos.close();
        }
    }
    public class main {
        public static void main(String[] args) throws IOException {
           File file=new File("C:\Users\天\Desktop\a.txt");
            FileOutputStream fos=new FileOutputStream(file);
            byte[] bytes={65,66,67};
            fos.write(bytes);
            fos.close();
        }
    }

    续写和换行写:

    续写构造函数:FileOutputStream(String name / File file,boolean append)

      append: 续写开关,true   。。。false。。。

    换行符号: Windows  :   fos.write(" ")

    字节输入流:

    java.io.InputStream :字节输入流,抽象类,是表示字节输入流的所有类的父类。

    java.io.FileInputStream extends InputStream.把磁盘文件读入内存。

      构造方法:FileInputStream(String name)  FileInputStream(File file)

      构造方法作用:1、创建对象,2、把对象指向要操作的文件

      使用步骤:1、创建对象。2、read() 3、释放资源。

    read() 后 ,指针自动指向下一字节, 结束标记为-1.

     一次读取多个字节:

      int read(byte[] b) ,从输入流读取一定数量的字节,并存在缓冲区数组b中。

      返回的是实际读取到的字节数。

    字节流练习:

    复制文件:

    public static void main(String[] args) throws IOException {
            File file =new File("C:\Users\天\Desktop\a.txt");
            File file1 =new File("C:\Users\天\Desktop\b.txt");
            FileInputStream fis=new FileInputStream(file);
            FileOutputStream fos=new FileOutputStream(file1,true);
            byte[] bytes=new byte[2];
            int len;
            while ((len=fis.read(bytes))!=-1){
                fos.write(bytes);
            }
            fos.close();
            fis.close();
        }

    字符流:

    读取中文字符时,由于编码问题,可能会出错,所以,Java提供专门处理文本文件的字符流类。

    字符输入流:

    java.io.Reader :抽象类,是所有字符输入流的父类。

    java.io.FileReader extends InputStreamReader extend Reader.

    FileReader: 文件字符输入流,把硬盘文件的数据以字符流的方式读入内存。

      构造方法:FileReader(String fileName / File file )

      构造方法作用:1、创建FileReader对象。2、指向要读取的文件。

    字符输出流:

    java.io.Writer: 抽象类, 所有字符输出流的父类。

    java.io.FileWriter extends OutputStreamWriter extends Writer.

    FileWriter: 文件字符输出流

      构造方法:FileWriter(String fileName / File file) 

    注意:使用write()时,是把数据写入内存缓冲区先,flush()或释放资源时会刷新到文件中。

    flush 和 close区别:

      flush:刷新缓冲区,流对象可继续使用。close:刷缓冲区后释放资源,流对象不可使用。

    字符输出流写数据的其他方法:

      void write (char[ ] c) 写入字符数组。

      abstract void write (char[ ] c, int off, int len)

      void write( String str) 写入字符串。

      void write ( String str,int off, int len ) ..

    流中异常的处理:

    JDK1.7 新特性:

    try后可以增加个(),里面可以定义流对象,这个流对象的作用域在try中有效,try执行完后,自动释放。

     public static void main(String[] args)  {
            File file =new File("C:\Users\天\Desktop\a.txt");
            try (FileWriter fw=new FileWriter(file);){
                fw.write(98);
                fw.close();
            }catch (IOException e){
                System.out.println(e);
            }
    }

    JDK9 新特性:

    在try前面定义流对象, ()里引入流对象名称 ,try代码结束后,也能释放,不用写finally。

  • 相关阅读:
    Linux下Vim简单使用
    使用scp命令在Windows和Linux之间拷贝文件
    Linux下使用Crontab实现定时任务
    UOS商店提取软件包离线安装的解决方法
    【50条常用MySQL语句】如果这50条sql语句你都不熟,你别说你会MySQL【建议收藏】
    elasticsearch 7.5.0 windows版本包,已集成ik分词器和pinyin分词器
    Ubuntu安装配置redis
    精讲Mysql各种高难度Sql编写(一)
    Ubuntu离线安装SVN1.13.0(步骤+所需deb安装包)【测试通过】
    Typora提示The beta version of typora is expired, please download and install a newer version.解决办法
  • 原文地址:https://www.cnblogs.com/zhangyuhao/p/10859045.html
Copyright © 2020-2023  润新知