| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> JAVA高级特性(六)——IO流(第一讲) -> 正文阅读 |
|
[Java知识库]JAVA高级特性(六)——IO流(第一讲) |
一、File 类概述和构造方法? ? ? ? File:它是文件和目录路径名的抽象表示 ? ? ? ? ? ? ?**文件和目录时可以通过File封装成对象; ? ? ? ? ? ? ?** 对于File而言,其封装的并不是一个真正的存在的文件,仅仅是一个路径名而已,它可以是存在的,也可以是不存在的。将来是 要通过具体的操作把这个路径的内容转换为具体存在的。 ?1.1 构造方法
1.2 创建目录的方法
补充一个命令: getparentFile()? ?获得该目录的父类对象
1.3 File 类判断和获取功能
1.6 File类删除功能
1.7 File类总结
二、IO流概述和分类2.1 IO流概述和分类? ? ? 2.1.1 IO流概述: ? ? ? ? ?IO:输入输出(INPUT,OUTPUT) ? ? ? ? 流:是一种抽象概念,是对数据传输的总称,也就是说数据在设备间的传输称为流,流的本质是数据传输; ? ? ? ? ?IO流:就是用来处理设备间数据传输问题的; ? ? ? ? ? ? ? ? ? ? ? ? ?常见的应用:文件复制、问价你上传、文件下载。 ? ? ? ?2.1.2 IO流的分类 ? ? ? ? ? ? ? ? ? ? ? 1、按照数据的流向: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 输入流:读数据; ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?输出流:写数据; ? ? ? ? ? ? ? ? ? ? ? 2、按照数据类型来分: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?字节流: 字节输入流和字节输出流 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?字符流: 字符输入流和字符输出流。 在什么情况下使用: ? ? ? ?如果数据通过Window自带的记事本软件打开,我们还可以读懂里面的内容,就使用字符流,否则使用字节流。如果不知道该使用哪种流,就使用字节流。 三、字节流 Stream3.1 字节流写数据? ? ? 字节: 1、数字和字母占一个字节; ? ? ? ? ? ? ? ? ? ?2、汉字: 如果是GBK编码 ——占2个字节;如果是UIF-8编码(idea中默认的编码)——占用3个字节 ? ? ? 字节流抽象基类 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?**InputSream:这个抽象类是表示字节输入流的所有类的超类 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?**OutputStream:这个抽象类是表示字节输出流的所有类的超类 ? ? ? ? ? ? ? ? ? ? ?子类名特点:子类名称都是以其父类名作为子类名的后缀。 3.1.1字节输出流: ? ? ? ? ? ? ? ? ? FileOutputStream:文件输出流用于将数据写入File ? 构造方法: ? ? ? ? ? ?FileOutputStream(String name):创建文件输出流以指定的名称写入文件 ? ? ? ? ? ? FuliOutputStream(String name,boolean append )//追加写入对象,append为“true”则是追加写入类型,反之不是 ? ? ? ? ? ? ?FileOutputStream(File file):创建文件输出流以写入由指定的File对象表示的文件 3.1.2?使用字节输出流写数据的步骤: ? ? ? ? 1、创建字节输出流对象(调用系统功能创建了文件,创建字节输出流对象,让字节输出流对象指向文件) ? ? ? ? 2、调用字节输出流对象的写数据方法; ? ? ? ? 3、释放资源 fos.close()(关闭此文件输出流并释放与此流相关联的任何系统资源) 3.1.3?字节流写数据的三种方式
补充:快速获得字节数组的命令——String byte getBytes(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Byte s="abcde".getBytes(); ? ? ? ? ? ? ? ? ? ? ? ? 相当于: Byte[] s={97,98,99,100,101}; 3.1.4?字节流写数据的两个小问题 ? ? ? ? ? ? ? ? ?1、写完数据后加换行符: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? windows: "\t\n"; linux: "\n"; mac: "\r" ? ? ? ? ? ? ? ? ?2、字节流写数据如何追加: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 采用构造方式构造追加性质的对象: ? ? ? ? ————public FileOutputStream(String name,boolean append):创建文件输出流以指定的名称写入文件。如果第二个参数为true,则字节将写入文件的末尾而不是开头。 ? ? ? ? ? ? ? ? ?3.1.4 字节流写数据加异常处理 ? ? ? ? ? ? ? ? ?利用 try...catch 进行异常判断, ? ? ? ? ? ? ? ? ?finally:在异常处理时提供finally块来执行所有清除操作。比如说IO流中的释放资源; 特点是一定会执行,直到JVM虚拟机退出 3.2 字节流读数据 (都是通过ACSI码值转换的,没有数据默认恢复为-1)? ? ? ? ? ? ? ? ?FileInputStream ? ? ? ? ? ? ? ?? 创建对象格式:FileInputStream fis=new FileInputStream(String string); ? ? ? ? ? ? ? ?? ?读取方法:1、一个字符一个读取; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2、一个字节数组的输出 ? ? 3.2.1 读数据的命令 ? ? ?public int read(); 返回值为-1时,则数据已经读完,利用这个返回值可以循环判断
3.2.2 一次读字节数组的数据 ? ? ? ? ? ? ? ?int read (byte[] b); 从该输入流读取最多b.length个字节数据到这个数组中,返回值为-1时代表以及读完。 ? ? ? ? ? ? ? String(byte[] bytes,start,end); String 中的构造方法,是将字节数组转换为字符串输出 start表示其实的索引,end表示输出的索引长度
3.3 字节缓冲流? ? ? ? 字节缓冲流: 为了提高读取速度 ? ? ? ?1、BufferOutputStream:该类实现缓冲输出流。通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节导致底层系统的调用。 ? ? ? ? 2、BuffteredInputSream:创建BufferedInputStream将创建一个内部缓冲区数组。当从流中读取或跳过字节时,内部缓冲区根据需要从所包含的输入流中重新填充,一次性很多字节 构造方法: ? ? ? ? ?**字节缓冲输出流:BufferedOutputStream(OutputStream out) ? ? ? ? ?** 字节缓冲输入流:BufferedInputStream( InputStream in ) 原因:字节缓冲流仅仅只是提供一个缓冲区,而真正的读写数据还是依靠基本的字节流对象进行处理。 ? ?3.4? 总结字节流
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 2:12:29- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |