输入、输出流

  • 期末考试会从10.1考到10.5
  • 源&目的地
  • 10.1File类
    • 创建一个File对象的构造方法
    • 文件属性
    • 目录
      • 创建目录
      • 列出目录中的文件
        • FilenameFilter接口
        • 辨析
    • 文件的创建与删除
    • 运行可执行文件
  • 10.2文件字节输出流FileInputStream
    • 四步骤
    • 构造方法
    • byte Java相对C++独有的数据类型
    • 使用输入流读取字节
    • 关闭流
    • 覆盖式vs追加式
    • 具体构造函数详看help文档
    • 示例
  • 10.3文件字节输出流FileOutputStream
  • 10.4文件字符输入流、输出流FileReader&FileWriter
    • out.flush();
  • 10.5缓冲流Buffered Stream
  • 10.6随机流
  • 10.7 数组流ByteArrayInputStream
  • 10.8 数据流
  • 10.9 对象流
  • 10.10 序列化与对象克隆
  • 10.11 使用扫描器解析文件
  • 10.12 文件对话框
  • 10.13 带进度条的输入流
  • 10.14 文件锁
  • 10.15 IDE
  • References
  • Edition 2021/12/15

期末考试会从10.1考到10.5

源&目的地

输入流的指向称作源,输出流的指向称作目的地。

10.1File类

File类的对象主要用来获取文件本身的一些信息,例如文件所在的目录、文件的长度或文件的读写权限等,不涉及对文件的读写操作。

创建一个File对象的构造方法

File(String filename);
File(String directoryPath,String filename);
File(File dir,String filename);

文件属性

public String getName()获取文件的名字
public boolean canRead()判断文件是否可读
public boolean canWrite()判断文件是否可被写入
public boolean exists()
public long length()
public String getAbsolutePath()
public String getParent()获取文件的父目录
public Boolean isFile()判断文件是否是一个普通文件,而不是目录。
public boolean isDirectory()
public boolean isHidden()
public long lastModified()获取文件最后修改的时间

目录

创建目录

public boolean mkdir()

列出目录中的文件

public String[] list()返回文件名(字符串形式)
public File[]listFiles()用File对象形式返回目录下指定类型的全部文件
public String[] list(FilenameFilter obj)
public File [] listFiles(FilenameFilter obj)

FilenameFilter接口

public boolean accept(File dir,String name);

辨析

"."当前目录
"…"上一级目录

文件的创建与删除

File file=new File(“C:\myletter”,“letter.txt”);
public boolean createNewFile();
file.delete();

运行可执行文件

Runtime ec;
ec=Runtime.getRuntime();//创建一个进程

10.2文件字节输出流FileInputStream

四步骤

源->创建输入流->读取->关闭输入流
油井————文件类Flie
运输管道/卡车
在管道和石油库(油井)之间的提取器
————输入输出流FileInputStream&FileOutputStream

构造方法

FileInputSteam(String name);其实有你看不见的文件列表
FileInputStream(File file);

byte Java相对C++独有的数据类型

使用输入流读取字节

int read()
int read(byte)
int read(byte b[ ],int off,int len)off偏移量

关闭流

close()

覆盖式vs追加式

覆盖式 清空
追加式 在文件尾写
类比C语言w/a

具体构造函数详看help文档

示例

import java.io.*;
public class Solution{
public static void main(String arg[]){int n=1;byte[] a=new byte[100];try{File f=new File("Solution.java");//建立输入流InputStream in= new FileInputStream(f);//in对象文件与输入流关联while(n=in.read(a,0,100))!=-1{String s=new String(a,0,n);//利用循环读取}in.close();//关闭输入流catch(IOException e){System.out.println("File read Error"+e);}}}

import java.io.*;
public class Solution{
public static void main(String arg[]){
int n=1;
byte[] a=new byte[100];
try{
File f=new File(“Solution.java”);//建立输入流
InputStream in= new FileInputStream(f);//in对象文件与输入流关联
while(n=in.read(a,0,100))!=-1{
String s=new String(a,0,n);//利用循环读取
}
in.close();//关闭输入流
catch(IOException e){
System.out.println(“File read Error”+e);
}
}
}

10.3文件字节输出流FileOutputStream

FileOutputStream(String name);
FileOutputStream(File file);

10.4文件字符输入流、输出流FileReader&FileWriter

out.flush();

强制刷新
数据在流中(内存中),还未保存到文件中,直接关闭可能会导致问价写入不完全。而flush这个操作读文件时不用。
flush()强制把流中的数据输入到文件中,保证文件写入操作绝对完成。

10.5缓冲流Buffered Stream

流中嵌套流,简化操作
readline()
一个字节一个字节地读,直到换行为止
BufferedReader(Reader in);
BufferedWriter(Reader out);

10.6随机流

10.7 数组流ByteArrayInputStream

输入的数据为字节型
读取数据为一个字节一个字节地读

10.8 数据流

10.9 对象流

不会考,但以后实际运用中很重要

10.10 序列化与对象克隆

10.11 使用扫描器解析文件

10.12 文件对话框

10.13 带进度条的输入流

10.14 文件锁

10.15 IDE

References

Edition 2021/12/15

Java实用教程笔记 输入、输出流相关推荐

  1. Java实用教程笔记 Java入门

    Java入门 JDBC Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新 ...

  2. Java实用教程笔记 组件及事件处理

    组件及事件处理 JFrame()常用方法 其中至少要掌握的 拓展 示例 AWT Swing SWT AWT 抽象窗口工具包 AWT(Abstract Window Toolkit),中文译为抽象窗口工 ...

  3. Java实用教程笔记 泛型与集合框架

    泛型与集合框架 Generics 链表 LinkedList < E >泛型类 接口回调 常用方法 LinkedList< E >泛型类实现Link< E >泛型接 ...

  4. Java实用教程笔记 Java多线程机制

    Java多线程机制 泛型要考,后来又说不考了 多线程不考 12.1 进程与线程Process and Thread 12.2Java中的线程Threads in Java 线程的状态与生命周期The ...

  5. Java实用教程笔记 常用实用类

    常用实用类 8.1 String类 判断引用是否为同一变量 常量池vs非常量池(动态区) equals 输出对象为内存地址的方式 "==" 运算结果为ture/false的比较方式 ...

  6. Java实用教程笔记 接口与实现

    接口与实现 6.1接口(中间人) 接口方法全为public abstract 接口中没有构造函数,方法可以抛出异常 接口没有任何函数逻辑(对外开放) 接口可继承 接口.类(内部类.匿名类)都会生成cl ...

  7. Java实用教程笔记 子类与继承2

    子类与继承2 Review 继承方式比较 继承后子类对父类的访问权限说明 super关键字作用(2个) 构造函数的调用顺序 没有参数的构造函数即为默认构造函数 Lecture notes final关 ...

  8. Java实用教程笔记 子类与继承

    子类与继承 Unity 游戏仿真 C#与Java语法差不多 java.lang.Object Object是所有类的祖先类/始祖类 任何一个类最终都能转化为Object类的对象 Java库中的类是基础 ...

  9. Java实用教程笔记 类与对象(续)

    类与对象(续) 实例变量(动态变量) 类变量(静态变量)(数据共享)static(尽量写成public(private和protected毫无意义)) 实例方法(既可访问静态数据,又可访问动态数据)A ...

最新文章

  1. 程序员必须掌握哪些算法?
  2. 单链表-删除并释放以L为表头指针的单链表的所有结点(双指针法)
  3. 第三次软工作业——实现最大字段和算法并进行判定条件覆盖
  4. axure 如何设置选项联动_Axure教程|用中继器做信息流,高仿人人都是产品经理网...
  5. Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39
  6. [postgresql]postgresql的递归查询sql实例
  7. samba服务器之无认证进入共享目录
  8. lua劈分字符串方法及实例
  9. Mac 使用rz sz 命令
  10. 基于波动率的期权交易策略分析
  11. 数学不好是原罪——高等数学笔记(汇总版)
  12. sentinel限流相关指标统计源码分析
  13. Debug Diagnostic Tool
  14. 酒水知识(六大基酒之伏特加_Vodka)
  15. java for循环迭代_Java for循环棘手迭代
  16. VUE系列之element表单el-form-item自定义label
  17. NRF24L01多发单收配置
  18. Word2vec原理+实战学习笔记(二)
  19. sg-uap mysql_SG-UAP常用注解介绍
  20. 金蝶EAS绿色客户端配置

热门文章

  1. azure java_Azure File服务(5): Java开发
  2. 班尼机器人如何代理_如何学习电商短视频拍摄剪辑
  3. 浅析Java中的final关键字
  4. 对勾选的下拉选择进行同步选择
  5. libsybcomn64.dll php,libsybcomn.dll下载|
  6. jstl动态取变量_C语言的变量名
  7. css如何让图片不平铺,css怎么设置图片平铺方式?
  8. 正值实系数多项式函数所对应的导数累加和是否非负?
  9. 第十六届智能车竞赛浙江赛区比赛胜利结束
  10. 走火入魔 | 暑期电子设计课程学生们的作品