Java中的IO操作精简版(一)

Java中的IO操作

一、IO简介

1. 概述

IO 是in/out的简称,是相对于程序而言的读取in和写出out动作。

2. 工具类(java.io包)

在Java中,根据处理的数据单位不同,分为字节流和字符流。

  • File—文件工具类。
  • 字节流:针对二进制文件。
  • InputStream
    –FileInputStream
    –BufferdInputStream
    –ObjectInputStream
  • OutputStream
    –FileOutputStream
    –BufferedOutputStream
    –ObjectOutputStream
  • 字符流:针对文本文件。读写容易发生乱码现象,在读写时最好指定编码集为utf-8。
  • Reader
    –InputStreamReader
    –BufferedReader
    –PrintWriter/PrintStream
  • Writer
    –OutputStreamWriter
    –BufferedWriter

流的概念:数据的读写抽象成数据,在管道中流动。

  • 流只能单方向流动;
  • 输入流用来读取in;
  • 输出流用来读出Out;
    数据只能从头到尾顺序的读写一次。

二、File文件流

1. 概述

封装一个磁盘路径字符串,对这个路径可以进行一次操作。可以用来封装文件路径、文件夹的路径、不存在的路径。是文件和目录路径名的抽象表示形式。

2. 创建对象

  • File(String pathname)
    —Creates a new File instance by converting the given pathname string into an abstract pathname.【通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。】

3. 常用方法

  • 文件、文件夹属性

length():文件的字节量;
exists():是否存在,存在返回true;
isFile():是否为文件,是文件返回true;
isDirectory():是否为文件夹,是文件夹返回true;
getName():获取文件/文件夹名;
getParent():获取父文件夹的路径;
getAbsolutePath():获取文件的完整路径。

  • 创建、删除

createNewFile():新建文件,文件夹不存在会异常,文件已经存在返回false;
mkdirs():新建多层不存在的文件夹\a\b\c;
mkdir():新建单层不存在的文件夹\a;
delete():删除文件,删除空文件夹。

  • 文件夹列表

list():返回String[],包含文件名;
listFile():返回File[],包含文件对象。

package cn.tonyoliver.io;
/**
 * 这个类用来测试File的常用方法
 */
import java.io.File;
import java.io.IOException;
import java.util.Arrays;

public class Test05_File {
	public static void main(String[] args) throws IOException {
		// 1.创建File对象 -- 参数可以是文件路径,也可以是文件夹路径
		File file = new File("Z:\\iotest\\1.txt");
		
		// 2.调用方法
		System.out.println(file.length());//获取字节量
		System.out.println(file.exists());//判断文件是否存在
		System.out.println(file.isFile());//判断是文件吗
		System.out.println(file.isDirectory());//判断是文件夹吗
		System.out.println(file.getName());//获取文件名
		System.out.println(file.getParent());//获取父路径
		System.out.println(file.getAbsolutePath());//获取完整路径
		
		file = new File("Z:\\iotest\\2.txt");
		System.out.println(file.createNewFile());//创建不存在的新文件
		file = new File("Z:\\iotest\\a");
		System.out.println(file.mkdir());//创建 一级 不存在的文件夹
		file = new File("Z:\\iotest\\a\\b\\c\\d");
		System.out.println(file.mkdirs());//创建 多级不存在的文件夹
		System.out.println(file.delete());//删除文件 或者 删除空的文件夹
		
		file = new File("Z:\\iotest");
		String[] strs = file.list();//列出文件夹的所有资源
		System.out.println(Arrays.toString(strs));//都是资源名称
		
		File[] fs = file.listFiles();
		System.out.println(Arrays.toString(fs));
		
		//获取文件夹下的每个资源,判断是文件还是文件夹
		File f = new File("Z:\\iotest");//指定了想要列的文件夹
		File[] a = f.listFiles();
		long size = 0;//定义变量,记录文件的和
		//遍历数组
		for (int i = 0; i < a.length; i++) {
			if(a[i].isFile()) {
				size = size + a[i].length();
			}else if(a[i].isDirectory()) {
				System.out.println("这是一个文件夹");
			}
		}
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值