Java文件处理

File类【File对象,表示一个文件/目录】

构造方法:File([String directoryPath文件路径 / File f抽象路径名]String filename);

方法说明
String getAbsolutePath()返回抽象路径名的绝对路径名字符串
String getName()返回抽象路径名下的文件名或目录名
String getParent()返回抽象路径名的父目录的路径名字符串
String getPath()将抽象路径名转换为一个路径名字符串
boolean isDirectory()测试抽象路径名指向是否为 目录
boolean isFile()测试抽象路径名指向是否为 标准文件
boolean isHidden()测试抽象路径名指向是否为 隐藏文件
long lastModified()测试抽象路径名表示文件的最后修改时间
long length()测试抽象路径名指向的文件的长度
boolean exists()测试抽象路径表示的文件或目录是否存在
package note;
import java.io.File;
public class Filess 
{
	public static void main(String[] args) 
	{
		File f = new File("E:\\文档\\Java学习\\我的作业\\测试.txt");
		System.out.println("文件名称:"+f.getName());
		System.out.println("文件存在否:"+f.exists());
		System.out.println("文件的长度:"+f.length());
		System.out.println("文件路径:"+f.getAbsolutePath());
		System.out.println("是否为文件:"+f.isFile());
		System.out.println("是否为目录:"+f.isDirectory());
		System.out.println("最后修改时间:"+f.lastModified());		
	}
}

/*输出结果:
文件名称:测试.txt
文件存在否:true
文件的长度:44
文件路径:E:\文档\Java学习\我的作业\测试.txt
是否为文件:true
是否为目录:false
最后修改时间:1634312473196
*/

Java以流的方式操作文件,流是Java内存中 有序的数据序列。

流向:输入流【读取数据的流】/ 输出流【写入数据的流】

流量:字节流 /字符流

功能:节点流【直接操作目标设备的流】/ 过滤流【对指定流的链接与封装】

所有的流位于Java.io包中,继承自表格内的四类流:

InputStream向程序中输入数据的字节流
OutputStream向程序外输出数据的字节流
Reader向程序中输入数据的字符流
Writer向程序外输出数据的字符流

文件输入流 类【从某个文件获得输入字节

构造方法:FileInputStream(File f文件对象 / String s路径名);

方法说明
int available()返回 下次调用时估计无阻塞读取的剩余字节数
void close()关闭 此文件输入流并释放所有相关系统资源
int read()读取 此流中一个数据字节
int read(byte[] b)读入 此流中所有字节到 一个byte数组
int read(byte[] b,int off,int len)读入 此流中len个字节到 一个byte数组

示例:

package note;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class FileInputStreamExample
{
	public static void main(String[] args) throws IOException
	{
		int size;
		InputStream fileobject = new FileInputStream("E:\\文档\\Java学习\\我的作业\\测试.txt");
		System.out.println("可读取的字节数:"+(size=fileobject.available()));
		char[]text = new char[200];
		for(int count=0;count<size;count++)
		{
			text[count]=(char)fileobject.read();
			System.out.print(text[count]);
		}
		System.out.println();
		fileobject.close();
	}
}

文件输出流 类【输出字节到某个文件】

 构造方法:FileOutputStream(File f文件对象 / String s路径名);

方法说明
void close()关闭 此文件输出流并释放所有相关系统资源
int write(int b)写入 指定字节写入文件输出流
int write(byte[] b)写入 指定字节数组写入文件输出流
int write(byte[] b,int off,int len)写入 指定字节数组写入文件输出流,由off开始的len个
package note;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class FileOutputStreamExample
{
	public static void main(String[] args) 
	{
		try
		{
			String str = "好好学习 天天向上";
			byte[] words  = str.getBytes();
			OutputStream fos = new FileOutputStream("E:\\文档\\Java学习\\我的作业\\测试.txt");
			fos.write(words, 0, words.length);
			fos.close();
		}
		catch (IOException obj) 
		{
			 System.out.println("创建文件时出错");
		}
	}
}

BufferedRead类【从字符输入流读取文件】

构造方法:BufferedRead(Reader in [,int sz]);

方法说明
int read()读取 单个字符
int read(char[] cbuf,int off,int len)读入 字符到数组指定位置
String readLine()读取 一个文本行
void close()关闭 该流并释放相关资源

示例:

package note;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class BufferedReaderExample 
{
	public static void main(String[] args) throws IOException 
	{
		FileReader fr = new FileReader("E:\\文档\\Java学习\\我的作业\\测试.txt");
		BufferedReader br = new BufferedReader(fr);
		
		String line = br.readLine();
		
		while(line!=null)
		{
			System.out.println(line);
			line=br.readLine();
		}
	}
}

BufferedWriter 类【以字符流把数据写入文件】

构造方法:BufferedWriter(Writer in [,int sz]);

方法说明
void write(int c)写入 单个字符
void write(char[] cbuf,int off,int len)写入 字符数组的指定部分
void write(String s,int off,int len)写入 字符串的指定部分
void newLine()写入 一个行分隔符
void close关闭 此流,要先刷新

示例:

package note;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class BufferedWriterExample 
{
	public static void main(String[] args) throws IOException 
	{
		FileWriter fw = new FileWriter("E:\\文档\\Java学习\\我的作业\\测试.txt");
		BufferedWriter bw = new BufferedWriter(fw);
		bw.write("大家好");
		bw.write("哈哈哈");
		bw.newLine();
		bw.write("123123");
		bw.newLine();
		bw.write("456789");
		
		bw.flush();
		bw.close();	
	}
}

示例, 复制文件A的内容到文件B:

package note;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class CopyFileAtoBExample 
{
	public static void main(String[] args) throws IOException
	{
		FileReader fr = new FileReader("E:\\文档\\Java学习\\我的作业\\测试.txt");
		BufferedReader br = new BufferedReader(fr);
		
		FileWriter fw = new FileWriter("E:\\文档\\Java学习\\我的作业\\Demo.txt");
		BufferedWriter bw = new BufferedWriter(fw);
		
		String temp;
		while((temp = br.readLine()) != null)
		{
			bw.write(temp);
		}
		
		bw.flush();
		
		fr.close();
		br.close();
		fw.close();
		bw.close();
	}
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神奇的海螺呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值