输入和输出处理(一)

输入和输出处理(一)

  • 变量
  • 数组
  • 对象
  • 对象数组
  • 集合
  • 上述这些方式是临时性数据存储的方案,关闭程序/计算机,对应的数据都会消失。
  • 它们将数据存储在RAM

1. 文件API

1.1 文件概述

计算机文件,是存储在某种长期存储设备上的一段数据流。所谓“长期存储设备”一般指磁盘、光盘、磁带等。其特点是所存信息可以长期、多次使用,不会因为断电而消失。

在计算机中每一个文件都拥有着:

  • 文件名
  • 文件的大小
  • 文件的格式

1.2 File类

java.io包下,提供用于操作文件/文件夹(目录)的API。

构造方法:

  • File(String pathname) 根据文件/文件夹的路径来构建一个File对象
  • File(String parent, String child) 根据文件/文件夹的父路径及子路径来构建一个File对象
  • File(File parent, String child) 根据文件/文件夹的父路径File对象(一般指某个文件夹)和子路径来构建一个File对象
// File(String pathname) 
File file = new File("d:/a.txt");
File file = new File('d:\\a.txt');

// File(String parent, String child) 
File file = new File("d:", "a.txt");

// File(File parent, String child) 
File parent = new File("d:/a");
File file = new File(parent, "b.txt");

普通方法:

  • exists() : boolean 判断是否存在
  • isFile() : boolean 是否是文件
  • isDirectory() : boolean 是否是文件夹
// 创建对象
File file = new File("d:/a.txt");

// 判断文件/文件夹是否存在
boolean exists = file.exists();
System.out.println("文件是否存在:" + exists);

// 判断是否是文件
boolean isFile = file.isFile();
System.out.println("是否是文件" + isFile);

// 判断是否是文件夹/目录
boolean isDirectory = file.isDirectory();
System.out.println("是否是文件夹:" + isDirectory);

  • length() : long 获取文件大小(单位:字节)
System.out.println(file1.length());

  • getPath() : String 获取相对路径
  • getAbsolutePath() : String 获取绝对路径
// 创建对象
File file = new File("a.txt");
// 相对路径:以当前的地址为起点来查找该内容
// 类似于 .../demo1/Test.java
// -> a.txt
System.out.println("相对路径:" + file.getPath());

// 绝对路径:通常是从盘符开始,完整描述文件位置的路径就是绝对路径。
// -> D:\eclipse-workspace\day22_IO\a.txt
System.out.println("绝对路径:" + file.getAbsolutePath());

  • getName() : String 获取文件/文件夹名
  • delete() : boolean 删除文件/文件夹
File file = new File("d:/b");
// 获取文件/文件夹 的名称
System.out.println("名称为:" + file.getName());
// 删除文件
if(file.exists()) {
	// 删除文件/空文件夹  谨慎删除 不会进入回收站[没有经过window程序操作]
	// 删除文件夹 需要通过[递归]来进行删除子目录及子文件...
	// 思路:一级一级进入到最根处 然后反向层级删除文件
	
	boolean isDelete = file.delete();
	if(isDelete) {
		System.out.println("删除成功!");
	} else {
		System.out.println("删除失败!");
	}
}

  • mkdir() : boolean 创建文件夹
    • createNewFile() : boolean 创建新文件
File file = new File("d:/C");
		
if(!file.exists()) {
	System.out.println("文件夹不存在!");
	// 创建文件夹
	boolean success = file.mkdir();
	
	// 创建文件
	boolean success = file.createNewFile();
	if(success) {
		System.out.println("创建文件夹成功!");
	}else {
		System.out.println("创建文件夹失败!");
	}
}

  • list() : String[] 获取文件夹下的所有内容的名称列表
  • listFiles() : File[] 获取文件夹下的所有内容的File对象列表
  • listFiles(FileFilter fileFilter) : File[] 获取文件夹下符合过滤器要求的内容的File对象列表
File file = new File("d:/develop");
		
// 获取文件夹下的所有子目录/文件
File[] subFiles = file.listFiles();
for (File subFile : subFiles) {
	System.out.println(subFile.getName());
}

2. 流的概述

IO(Input Output)

流是个抽象的概念,是对输入输出设备的抽象, 是流向目的地的数据流, Java 程序中,对
于数据的输入/输出操作都是以“流”的方式进行, 设备可以是文件,网络,内存等 。

按照数据的流向划分:(相对于计算机内存/程序来说的)

  • 输入流
  • 输出流

按照处理的数据单元划分:

  • 字节流
  • 字符流

按照数据流向及处理单元结合划分:

  • 字节输入流 InputStream
    • FileInputStream
  • 字节输出流 OutputStream
    • FileOutputStream
  • 字符输入流 Reader
    • FileReader
  • 字符输出流 Writer
    • FileWriter

3. 字节流的使用

(未完待续…)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值