IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 复习IO流相关 -> 正文阅读

[Java知识库]复习IO流相关

1.IO流的“首领”

? ? ? ? java.io.InputStream? 字节输入流

? ? ? ? java.io.OutputStream? 字节输出流

? ? ? ? java.io.Reader? 字符输入

? ? ? ? java.io.Writer? 字符输出

都实现了closeable,都是可以关闭的

输出流都实现了flushable,都是可以刷新的

所有流中以Stream结尾的叫做字节流

所有六中以Reader/Writer结尾的时字符流

1.2.? 16个流

2.File类

package File;

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

/**
 * java中万物皆对象
 *  file对象就是文件或者目录的抽象表示形式,它和流的四大家族无关,无法完成文件的读写
 *
 *  下面介绍常用方法
 */
public class Test {
    public static void main(String[] args) throws IOException {
        File file = new File("D:\\MyJava\\Temp2");

        //1.判断是否存在
        System.out.println(file.exists());

        //2.若不存在,可用下面的两种方法以两种形式将之创建出来
        File f1 = new File("D:\\MyJava\\Temp3");
        if (!f1.exists()){

            //以文件形式创建
            //f1.createNewFile();
            //以目录形式创建
            //f1.mkdir();
            f1.mkdirs();//以多重形式创建

        }

        //3.获取文件的父路径
        String parentPath = file.getParent();
        System.out.println(parentPath);//D:\MyJava

        //4.获取绝对路径
        File f2 = new File("fileTemp");
        if (!f2.exists()){
            f2.createNewFile();
        }
        System.out.println(f2.getAbsolutePath());//D:\MyJava\Temp2\fileTemp
    }
}
        File f1 = new File("D:\\course\\01-开课\\开学典礼.ppt");
        // 获取文件名
        System.out.println("文件名:" + f1.getName());

        // 判断是否是一个目录
        System.out.println(f1.isDirectory()); // false

        // 判断是否是一个文件
        System.out.println(f1.isFile()); // true

        // 获取文件最后一次修改时间
        long haoMiao = f1.lastModified(); // 这个毫秒是从1970年到现在的总毫秒数。
        // 将总毫秒数转换成日期?????
        Date time = new Date(haoMiao);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        String strTime = sdf.format(time);
        System.out.println(strTime);

        // 获取文件大小
        System.out.println(f1.length()); //216064字节。
        // 获取当前目录下所有的子文件。
        File f = new File("D:\\course\\01-开课");
        File[] files = f.listFiles();

3.FileInputStream

3.1read()? 返回值为读取到的数据

3.2read(byte[] b)? 返回值为读取到的字节数,而返回内容存储在byte[]数组中

3.3read(byte[] b,int off,int len)?

package FileStream.FileInputStream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * 使用循环改写
 */
public class Test04 {
    public static void main(String[] args) {
        FileInputStream fis = null;
        try {
            fis = new FileInputStream("temp.txt");
            byte[] b = new byte[5];//一次性读取5个
            int readCount = 0;
            while ((readCount = fis.read(b))!=-1){
                System.out.println(new String(b,0,readCount));
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fis!=null){
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

3.4.FileInputStream的其他几个方法

/**
 * FileInputStream其他常用方法
 *      int available():返回流中剩余没有读到的字节数量
 *      long skip():跳过几个字节不读
 */
public class Test05 {
    public static void main(String[] args) {
        FileInputStream fis = null;
        try {
            fis = new FileInputStream("temp.txt");
            System.out.println("该文件的总字节数为"+fis.available());//16

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fis!=null){
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

4.FileOutputStream

4.1FileOutputStream的声明

fos = new FileOutputStream("tempOut.txt"); 
//没有这个文件,会自动生成,如果有,这样写会清空原来的内容 
fos = new FileOutputStream("temp.txt",true);//这样写,在源文件的基础上添加

4.2write方法

fos = new FileOutputStream("tempOut.txt",true);//这样写,在源文件的基础上添加

byte[] bytes = {97,98,99,100,101,102,103};
fos.write(bytes);

5.

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-13 12:40:04  更:2021-12-13 12:42:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:46:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码