Java基础篇-File IO编程

如果自学时候 对于IO可能会有恐惧感

如果要学好IO 必须清楚抽象类? 为什么

IO的操作部分,重点掌握两个代码模型

IO核心组成:
五个类:
File
OutputStream
InputStream
Writer
Reader

File类详解
在java.io当中
File类是唯一一个与文件本身(文件的创建,删除,取得文件信息)有关的程序类

File类的基本使用:

java.io.File是一个普通的类,直接产生实例化对象即可

两个常用的构造方法
public File(String pathname)
public File(File parent, String child) 设置父路径和子文件

常用方法:

创建新文件: public boolean createNewFile() throws IOException 只是创建文件本身,对于文件内容不做处理
删除文件: public boolean delete()
判断文件是否存在: public boolean exists()

对于路径分隔符 Windows 是 \ UNIX 是 /
定义一个常量
public static final String separator JVM来决定最终的separator是什么内容

同名文件的删除可能会存在一定的延迟

File file = new File("d:\\helllo.txt"); 
File file = new File("d:" + File.separator + "hello.txt");

file.createNewFile() //只是创建文件

File类

如果要处理文件内容,需要通过文件流来进行操作

java.io包当中存在两种流: 字节流 与 字符流

字节操作流

  • InputStream: 字节输入流
  • OutputStream: 字节输出流

字符流:

  • 输入流: Reader
  • 输出流: Writer

字节流是原生的操作
网络数据传输,磁盘数据保存的支持的数据类型只有字节 没有, 而磁盘中的数据必须读取到内存之后才可以操作,内存可以将字节转换为字符

基本操作流程固定:

  1. 根据文件路径创建File类对象
  2. 根据字节流或字符流的子类实例化父类对象
  3. 进行数据的读取、写入操作
  4. 关闭流 close() 方法

对于IO操作属于自愿处理,所有资源处理操作必须进行关闭,如果项目内没有执行关闭,可能只能整个项目全部重启才能关闭

java.io.OutputStream

一定要看

类的定义结构

public abstract class OutputStream extends Object implements Closeable, Flushable

两个接口
Closeable : public void close() throws IOException
Flushable : public void flush() throws IOException

而在OutputStream类里还定义其它方法
一个接口(Serializable)

BufferedReader类

类定义结构
public class BufferedReader extends Reader
public String readLine() throws IOException

public BufferedReader(Reader in)

默认的换行模式是BufferedReader最大确定 根据回车进行换行

接收类型为String, 可以进行正则处理同时可以转换为各种的数据模式

public class Demo {
    public static void main(String[] args) throws Exception {
        BufferReader buf = new BufferReader(new InputStream)
        System.out.println()
        System.out.println()

已经被Scanner所替代

打印流解决OutputStream缺陷
java.util.Scanner 可以解决BufferedReader类缺陷
Scanner 是一个专门进行数据流处理的程序类

java.util.Scanner
类的定义

public

判断是否有指定类型的数据: public boolean hasNextXXX();
取得只能类型的数据 public boolean nextXXX();
hasNext()
String next()

public class Demo {
    Scanner scan = new Scanner(System.in);
    System.out.print();
    if (scan.hasNextInt()) {
        int 
                

系统输出: out err
调试过程 log 日志的模式输出

posted @ 2018-11-06 23:14  AugusKong  阅读(238)  评论(0编辑  收藏  举报