linux创建文件 azure linq reflection sas xampp vue绑定class 网盘源码 软件测试项目实战案例 js获取月份 磁盘清理会误删东西吗 matlab求向量的模 pythonsocket编程 mysql教程 python3正则表达式 python开发环境 python中不等于 java访问数据库 java基础学习 java获取ip地址 java怎么配置 java索引 怎么安装linux linux密码忘记 linux中sudo xp系统修复 gilisoft 快打旋风3出招表 字符串分割成数组 c4d挤压 编程电子书 sqlprompt edquota 回收站在哪个盘 ps反选 数据库建模工具 origin柱状图 su怎么添加材质 mw3 劲舞团辅助
当前位置: 首页 > 学习教程  > 编程语言

java基础笔记(10)0113

2021/1/13 19:23:54 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

1.流的分类 流的方向: 输入流:读的功能 输出流:写的功能 操作的数据单位: 字节流:适合范围更加广,任意类型文件都可以用 字符流:效率高,知识和操作文本 功能: 节点流&…

1.流的分类
流的方向:
输入流:读的功能
输出流:写的功能
操作的数据单位:
字节流:适合范围更加广,任意类型文件都可以用
字符流:效率高,知识和操作文本
功能:
节点流:直接接触数据源里的流
处理流:直接接触的是其他流,目的是提高效率,让操作更加灵活
任何一种流都可以用这三种分类来分

file可以表示文件,也可以表示文件夹
file对象只能操作文件,无法操作里面的内容
内容由 流 操作

2.file的一些操作

import java.io.File;
import java.io.IOException;
public class Test {
	public static void main(String[] args) throws IOException {
		// File 可以表示文件, 也可以表示文件夹
		// 想要在哪里创建一个名字为什么的文件
		File file = new File("C:\\Users\\18434\\Desktop\\a");
		File file2 = new File("C:\\Users\\18434\\Desktop", "hahahah.txt");
		System.out.println(file2);
		// \\ 路径分隔符 File.separator 根据操作系统对应的路径分隔符
		File parent = new File("C:" + File.separator + "Users" + File.separator + "18434/Desktop");
		File file3 = new File(parent, "xi\\ha\\he");
		System.out.println(file3);
		// file 只是表示路径,文件不一定存在
		if (!file.exists()) {// exists 判断文件是否真的存在
			// 不存在则想要创建一个文件
			boolean b = file.createNewFile();
			System.out.println(b);
		}
		// 创建文件夹
		file3.mkdirs();// mkdirs 创建多级目录
	}
}
import java.io.File;
import java.io.IOException;
public class Test2 {
	public static void main(String[] args) throws IOException {
		// C:\\Desktop 绝对路径
				// 相对路径  工程
				File file = new File("a.txt");
				file.createNewFile();				
				System.out.println("得到文件的名字"+file.getName());
				System.out.println("相对路径:"+file.getPath());
				System.out.println("绝对路径:"+file.getAbsolutePath());
				System.out.println("得到父级目录String"+file.getParent());
				System.out.println("得到父级目录File"+file.getParentFile());				
				System.out.println("文件是否可读"+file.canRead());
				System.out.println("文件是否可写"+file.canWrite());
				System.out.println("文件是否是隐藏文件"+file.isHidden());				
				System.out.println("判断是否是文件夹"+file.isDirectory());
				System.out.println("判断是否是文件"+file.isFile());				
				// 此方法不能对文件夹起作用
				System.out.println("文件内容长度"+file.length());				
				//文件名字重命名
				File file2 = new File("b.txt");
				boolean b2 = file.renameTo(file2);
				System.out.println(b2);				
				// 以后如果还要操作b.txt ,则必须用file2   因为file代表的a.txt不存在了
				file2.delete();
				// 删除操作和重命名操作  操作的文件如果被使用着则操作失败
	}
}

3.递归:隐式循环
遍历整个文件夹中所有的文件
递归:存在的风险:可能会出现StackOverflowError 栈内存溢出
设置出口 合理的控制 则不会出现StackOverflowError
递归: 遍历整个文件夹中所有的文件

import java.io.File;
public class Test3 {
	public static void main(String[] args) {
		File file = new File("C:\\Users\\18434\\Desktop\\资料");
		String[] list = file.list();
		for (String string : list) {
			System.out.println(string);
		}		
		File[] listFiles = file.listFiles();
		for (File file2 : listFiles) {
			System.out.println(file2);
		}		
		a();
	}
	//StackOverflowError 栈内存溢出
	// 方法执行是在栈中执行 
	static int num = 0;
	public static void a(){		
		System.out.println(" this is a a()");
		num++;
		if(num==5){
			return;
		}
		a();// 自己调用自己
	}
}
import java.io.File;
public class Test4 {
	public static void main(String[] args) {
		File file = new File("C:\\Users\\18434\\Desktop\\资料");
		findAllFile(file);
	}
	public static void findAllFile(File file){
		if(file!=null){
			if(file.isDirectory()){//判断是不是文件夹
				// 查找文件夹下一层级所有内容
				File[] files = file.listFiles();
				for (File file2 : files) {
					findAllFile(file2);// 调用findAllFile 帮判断是文件还是文件夹
				}
			}else{
				System.out.println("是文件:"+file);
			}
		}else {
			System.out.println("没有办法找");
		}
	}
}

本文链接: http://www.dtmao.cc/news_show_600049.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?