用几段代码搞定Java文件流

Java文件流

File类篇

1.File类
在学习File类之前,需要知道的有以下两点:
(1)File类是java.io包下的一个类
(2)应该将File理解成路径而不是文件

我们学习File,首先就要先了解它的构造方法

2.File的构造方法
下面的代码可以很清晰地看到它的构造方法

public static void main(String[] args)
{
	//构造一个新文件,括号中为文件的目录
	File file = new File("C:\\Users\\lgx\\Desktop\\lgx.txt");
	//打印出来结果为true
	System.out.println(file.exists());
}

再说一下File的构造方法吧,它的优势在于可以对某一个文件路径下的多个文件进行操作

public static void main(String[] args)
{	
	String parents = "C:\\Users\\lgx\\Desktop";
	String child = "lgx.txt";
	File file = new File(parent,child);
	System.out.println(file.exists());
} 

3.常见的对File类操作的几个方法
1)创建一个文件 .createNewFile() ,运行一次后会返回true,第二次返回false(因为运行并刷新之后文件就已经存在了)
(2)重命名一个文件
File a = new File(“a.txt”);
File b = new File(“b.txt”);
a.renameTo(b); 就是将文件名为a的文件变成文件名为b的文件(文件内容不变)
(3)删除一个文件 .delete(); (注:这个方法不能删除文件夹下有文件或有文件夹的情况,该方法只能删除一个文件或者一个空的文件夹)
(4)获取文件的字符的个数 .length();
(5)获取文件的相对路径 .getPath();
(6)获取文件的绝对路径 .getAbsolutePath();
(7)获取文件的名称 .getName();
(8)获取最后一次修改时间 .lastModified();

IO流篇

流按照流向分为两种:输入流输出流
流按照操作类型也是有两种:字节流字符流
其中: InputStreamOutputStream是处理字节流的抽象类

InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等.OutputStream是字节输出流的所有类的超类,一般我们使用它的子类,如FileOutputStream等.

InputStreamReaderOutputStreamWriter则是处理字符流的抽象类

InputStreamReader 是字节流通向字符流的桥梁,它将字节流转换为字符流.
OutputStreamWriter是字符流通向字节流的桥梁,它将字符流转换为字节流.

使用IO流的时候,尤其要注意以下几点:
使用前,需要导入IO包相关类,例如前面学习的File

使用时,进行IO异常处理。打开一个文件,这个文件路径很可能不存在,这样异常需要处理。

使用后,需要释放资源。例如,打开文件读取之后,需要关闭文件,释放内存资源

(1)FileInputStream(输入)

//import java.io.*;
public static void main(String[] args)	throws IOException //异常处理
{
	//创建流对象
	FileInputStream fis = new FileInputStream("lgx.txt");
	int a = 0;
	//读取(文件结束的标记符号是-1,该方法的读取效率较低)
	while((b = fis.read()) != -1)
	{
		System.out.println(b);
	}
	//关闭文件,释放资源
	fis.close();
}

(2)FileOutputStream(输出)

public static void main(String[] args) throws IOException
{
	FileOutputStream fos = new FileOutputStream("lgx.txt");
	//写入字节
	fos.write(666);
	//同样,FileOutputStream也需要关闭
	fos.close();
}

(3)利用输入输出对文件进行拷贝

package my;

import java.io.*;

public class CopyFile 
{
	public static void main(String[] args) throws IOException 
	{
		//1.创建输入流对象
		FileInputStream fis = new FileInputStream("文件的绝对路径");
		//2.创建输出流对象
		FileOutputStream fos = new FileOutputStream("拷贝后的文件名")
		int a;
		//3.循环判断,不为-1就写入文件
		while ((a = fis.read()) != -1) 
		{
			//4. 写入文件
			fos.write(a);
		}
		//5.关闭输入流
		fis.close();
		//6.关闭输出流
		fos.close();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值