黑马程序员------毕老师视频笔记第18-21天------IO输入与输出(4)

本文演示了Java中File类的基本使用,包括文件和文件夹的创建、获取路径及绝对路径的操作,并通过实例展示了如何将指定目录下的txt文件路径存储到文本文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------


本篇演示File类的使用

 

示例一:File类的基本使用

import java.io.*;
class FileDemo 
{
	public static void main(String[] args) throws IOException
	{
		sop("----------------------------------------------------------");
		File dir = new File("d:\\java_demo\\a");
		newDir(dir);
		sop("----------------------------------------------------------");
		File f1 = new File("a\\a.txt");
		File f2 = new File("d:\\java_demo\\a","b.txt");
		File d = new File("d:\\java_demo\\a");
		File f3 = new File(d,"c.txt");
		File f4 = new File("d:"+File.separator+"java_demo"+File.separator+"a"+File.separator+"d.txt");		
		newFile(f1);
		newFile(f2);
		newFile(f3);
		newFile(f4);
		sop("----------------------------------------------------------");
		sop(f1+" path:"+f1.getPath());
		sop(f1+" abspath:"+f1.getAbsolutePath());
	}
	//创建文件
	public static void newFile(File f)throws IOException
	{
		if (!f.exists())
		{
			sop(f+" 不存在");
			if (f.createNewFile())
				sop(f+" 创建成功");
			else 
				sop(f+" 创建失败");
		}
		else sop(f+" 存在");
	}
	//创建文件夹
	public static void newDir(File dir)
	{
		if (!dir.exists())
		{
			sop(dir+" 文件夹不存在");
			if (dir.mkdirs())
				sop(dir+" 文件夹创建成功");
			else 
				sop(dir+" 文件夹创建失败");
		}
		else sop(dir+" 文件夹存在");
	}
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}

运行前没有a目录以及文件

连续运行两次后



示例二:将一个指定目录下的txt文件的绝对路径,存储到一个文本文件中。

建立一个java文件列表文件。

 

思路:

1,对指定的目录进行递归。

2,获取递归过程所以的java文件的路径。

3,将这些路径存储到集合中。

4,将集合中的数据写入到一个文件中。

 

import java.io.*;
import java.util.*;
class  JavaFileList
{
	public static void main(String[] args) throws IOException
	{
		File dir = new File("d:\\java_demo\\a");
		List<File> list = new ArrayList<File>();
		fileToList(dir,list);
		File file = new File(dir,"list.txt");
		writeToFile(list,file.toString());
	}
	public static void fileToList(File dir,List<File> list)
	{
		File[] files = dir.listFiles();
		for(File file : files)
		{
			if(file.isDirectory())
				fileToList(file,list);
			else
			{
				if(file.getName().endsWith(".txt"))
					list.add(file);
			}
		}
	}
	public static void writeToFile(List<File> list,String javaListFile)throws IOException
	{
		BufferedWriter bufw =  null;
		try
		{
			bufw = new BufferedWriter(new FileWriter(javaListFile));
			for(File f : list)
			{
				String path = f.getAbsolutePath();
				bufw.write(path);
				bufw.newLine();
				bufw.flush();
			}
		}
		catch (IOException e)
		{
			throw e;
		}
		finally
		{
			try
			{
				if(bufw!=null)
					bufw.close();
			}
			catch (IOException e)
			{
				throw e;
			}
		}
	}
}

运行后




---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值