为了账号安全,请及时绑定邮箱和手机立即绑定

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 5)序列化中,子类和父类构造函数的调用问题

    对子类对象进行反序列化操作时,如果其父类没有实现序列化接口,那么其父类的构造函数会被调用

    一个类实现了序列化接口,那么其子类都可以进行序列化

    查看全部
  • 4)transient关键字

    private void writeObject(java.io.ObjectOutputStream s)
           throws java.io.IOException

    private void readObject(java.io.ObjectInputStream s)
           throws java.io.IOException, ClassNotFoundException

    分析ArrayList源码中序列化和反序列化的问题

    查看全部
  • 字符流的过滤器

     BufferedReader  --->readLine 一次读一行

     BufferedReader/PrintWriter  --->写一行

    查看全部
  • FileReader/FileWriter 

    直接操作文件,但文本文件无法处理编码格式,需要回归到InputStreamReader/OutputStreamWriter方法

    查看全部
  • 2、字符流

    1)编码问题

    2)认识文本和文本文件

    Java的文本(char)是16位无符号整数,是字符Unicode编码(双字节编码)

    文件是byte byte byte.....的数据序列

    文本文件是文本(char)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的存储结果

    3)字符流(Reader Write)--->操作的是文本文件

    字符的处理,一次处理一个字符

    字符的底层任然是基本的字节序列

    字符流的基本实现

    InputStreamReader 完成byte流解析为char流,按照编码解析

    OutputStreamWriter 提供char流到byte客流,按照编码处理

    查看全部
  • 8)BufferedInputStream&BufferedOutputStream

    这两个流类位IO提供了带缓冲区的操作,一般打开文件进行写入或读取操作时,都会加上缓冲,这种流模式提高了IO的性能


    FileOutputStream--->write()方法相当于一滴一滴的把水转移过去

    DataOutputStream--->writeXxx()方法方便一些,相当于一瓢一瓢的把水转移过去

    BufferedOutputStream--->write()方法更方便,相当于一瓢一瓢先放入桶中,再从桶中倒入另一个缸中

    查看全部
    0 采集 收起 来源:字节缓冲流

    2022-02-11

  • IO流分为输入流、输出流
    还有字节流、字符流
    1、字节流:
    (1)InputStream:抽象了应用程序读取数据的方式
    (2)OutputStream:抽象了应用程序写 出数据的方式
    2)EOF = End 读到-1就读到结尾
    3)输入流基本方法
    int b = in.read();读取一个字节无符号填充到int低八位.-1是EOF
    in.read(byte[] buf) 读取数据填充到字节数组buf
    in.read(byte[] buf,int start, int size)读取数据到字节数组buf从buf的start位置开始存放size长度分数据
    4)输出流基本方法
    out.write(int b)写出一个byte到流,b的低8位
    out.write(byte[] buf)将buf字节数组都写到流
    out.write(byte[] buf, int start,int size) 字节数组buf从start位置开始写size长度的字节到流

    5)FileInputStream--->具体实现了在文件上读取数据

    6)FileOutputStream--->实现了向文件中写出byte数据的方法

    7)DataOutputStream/DataInputStream

    对“流”功能得扩展,可以更加方面的读取int,long,字符等类型数据

    DataOutputStream

     writeInt()/writeDouble()/writeUT()

    查看全部
  • IO流分为输入流、输出流
    还有字节流、字符流
    1、字节流:
    (1)InputStream:抽象了应用程序读取数据的方式
    (2)OutputStream:抽象了应用程序写 出数据的方式
    2)EOF = End 读到-1就读到结尾
    3)输入流基本方法
    int b = in.read();读取一个字节无符号填充到int低八位.-1是EOF
    in.read(byte[] buf) 读取数据填充到字节数组buf
    in.read(byte[] buf,int start, int size)读取数据到字节数组buf从buf的start位置开始存放size长度分数据
    4)输出流基本方法
    out.write(int b)写出一个byte到流,b的低8位
    out.write(byte[] buf)将buf字节数组都写到流
    out.write(byte[] buf, int start,int size) 字节数组buf从start位置开始写size长度的字节到流

    5)FileInputStream--->具体实现了在文件上读取数据

    6)FileOutputStream--->实现了向文件中写出byte数据的方法

    查看全部
  • java.io.File类用于表示文件(目录)

    File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问


    RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件。支持随机访问文件,可以访问文件的任意位置。

    RandomAccessFile支持随机访问文件,可以访问文件的任意位置


    (1)java文件模型
     在硬盘上的文件时 byte byte byte存储的,是数据的集合
    (2)打开文件
    两种模式:“rw”(读写),“r”(只读)
    RandomAccessFile raf = new RandomAccessFile(File,"rw")
    文件指针,打开文件时指针在开头 pointer = 0;
    (3)写方法:
    raf.write(int)--->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入
    (4)读方法:
    int b = raf.read()--->读一个字节
    (5)文件读写完成以后一定要关闭(Oracle官方说明)
    raf.close()

    查看全部
  • package com.imooc.io;

    import java.io.File;
    import java.io.IOException;

    //列出File的一些常用操作,比如过滤、遍历等操作
    public class FileUtils {
       /**
        * 列出指定目录下(包括其子目录的)所有文件
        *
        * @param dir
        * @throws IOException
        */
       public static void listDirectory(File dir) throws IOException {
           if (!dir.exists()) {
               throw new IllegalArgumentException("目录:" + dir + "不存在.");
           }
           if (!dir.isDirectory()) {
               throw new IllegalArgumentException(dir + "不是目录!");
           }
    //        String[] filenames = dir.list();//返回的是字符串数组 直接子的名称,不包含目录下的内容
    //        for (String s : filenames) {
    //            System.out.println(dir + "\\" + s);
    //        }
           //如果要遍历子目录下的内容就需要构造成File对象的递归操作,File提供了直接返回File对象
           File[] files = dir.listFiles();//返回的是直接子目录(文件)的对象
           if (files != null && files.length > 0) {
               for (File file : files) {
                   if (file.isDirectory()) {
                       //递归
                       listDirectory(file);
                   } else {
                       System.out.println(file);
                   }
               }
           }
       }
    }

    查看全部
    0 采集 收起 来源:遍历目录

    2022-02-08

  • IO流分为输入流、输出流
    还有字节流、字符流
    1、字节流:
    (1)InputStream:抽象了应用程序读取数据的方式
    (2)OutputStream:抽象了应用程序写 出数据的方式
    2)EOF = End 读到-1就读到结尾
    3)输入流基本方法
    int b = in.read();读取一个字节无符号填充到int低八位.-1是EOF
    in.read(byte[] buf) 读取数据填充到字节数组buf
    in.read(byte[] buf,int start, int size)读取数据到字节数组buf从buf的start位置开始存放size长度分数据
    4)输出流基本方法
    out.write(int b)写出一个byte到流,b的低8位
    out.write(byte[] buf)将buf字节数组都写到流
    out.write(byte[] buf, int start,int size) 字节数组buf从start位置开始写size长度的字节到流

    查看全部
  • andomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件。支持随机访问文件,可以访问文件的任意位置。

    java文件模型
     在硬盘上的文件时 byte byte byte存储的,是数据的集合
    打开文件
    两种模式:“rw”(读写),“r”(只读)

    RandomAccessFile raf = new RandomAccessFile(File,"rw")
    文件指针,打开文件时指针在开头 pointer = 0;

    写方法:
    raf.write(int)--->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入

    读方法:
    int b = raf.read()--->读一个字节

    文件读写完成以后一定要关闭
    raf.close()

    查看全部
  • import java.io.File;
    import java.io.IOException;

    // 列出file类的一些常用操作,不如过滤、遍历等操作
    public class FileUtils {
    public static void listDirectory(File dir) throws IOException{
    // exists()方法用于判断文件或目录是否存在
    if(!dir.exists()){
    throw new IllegalArgumentException("目录:" + dir + "不存在");
    }
    // isDirectory()方法用于判断File类的对象是否是目录
    if(!dir.isDirectory()){
    throw new IllegalArgumentException(dir + "不是目录");

    }
    // list方法用于列出当前目录下的子目录和文件
    /*String[] filenames = dir.list(); // 返回的是字符串数组 直接子的名称 不包含子目录下的内容
    for (String string : filenames) {
    System.out.println(dir + ":\\" + string);
    }*/
    // 如果要遍历子目录下的内容就需要构造成File对象做递归操作,File提供了返回File对象的API
    File[] files = dir.listFiles(); // 返回的是直接子目录(文件)的抽象
    //for (File file : files) {
    //System.out.println(file);
    if(files!=null && files.length > 0){
    for (File file : files) {
    if(file.isDirectory()){
    // 递归
    listDirectory(file);
    }else{
    System.out.println(file);
    }
    }
    }

    }



    }

    查看全部
    0 采集 收起 来源:遍历目录

    2021-04-07

  • java.io.File类在Java中表示文件或目录。
    File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问。

    创建File对象:File file=new File(String path);
    可以通过 alt+/ 查看构造函数
    注意:盘符后跟双斜杠 \\ 或者 /
    1. file.seperater();获取系统分隔符
    2. file.exists();是否存在.存在返回true,不存在返回false
    3. file.mkdir();或者file.mkdirs();创建目录或多级目录。
    4. file.isDirectory()或者file.isFile()判断是否是目录或者是否是文件。是返回true,不是为false
    5. file.delete();删除文件/文件夹。
    6. file.createNewFile();创建新文件。
    7. file.getName()获取文件名称。
    8. file.getAbsolutePath()获取绝对路径。
    9. file.getParent();获取父级绝对路径。

    查看全部
  • 这里说"不识别换行符" 我认为readLine就是通过换行符进行断行 读取断行前的内容并赋值.

    查看全部
  • 注意这里的 

    String line;

    和 !=null

    查看全部
  • new InputStreamReader 中可以传递字符类型的参数.

    查看全部
  • new BufferedReader 的参数是 Reader 类型 而这个Reader类型是 抽象类 无法直接new 可以通过 new InputStreamReader 来生成一个子类的对象

    查看全部
  • 把很大的数组直接构造为字符串.

    查看全部
  • 这里他在每次写入后都刷新缓冲区一次.

    查看全部
    0 采集 收起 来源:字节缓冲流

    2021-04-06

首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
亲,为了更好的学习本门课程,需要您对二进制的知识有所了解,还要熟悉Java的基本语法和面向对象的知识。
老师告诉你能学到什么?
1、了解文件编码。 2、能够对文件和目录进行管理操作。 3、能够应用字节流和字符流对文件进行读写操作。 4、能够对对象进行序列化和反序列化。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!