File

1.文件操作基本命令

创建:

createNewFile();//只在文件不存在时创建,创建成功返回true,如果文件已经存在不创建,返回false.创建文件时只能在已有的路径下创建。此方法只能创建文件不能创建文件夹。
mkdir()//创建文件夹,此方法只能创建一级目录,如果有多级目录无法创建。
mkdirs()//创建文件夹,此方法可以创建多级目录,会将路径中须有的所有目录都依次创建出来。
删除:
delete()//既可以删除文件也可以删除文件夹,如果要删除的是一个文件夹,则该文件夹必须位空的才能删除
判断:
boolean canRead() //判断该文件是否可读
boolean canWrite() //判断文件是否可写 
boolean exists() //判断文件或文件夹是否存在
boolean isFile() //判断是否是一个文件,如果File表示的是一个文件且文件存在则返回true,如果File表示的文件不存在或者是一个文件夹则返回false
  boolean isDirectory()//判断是否是一个文件夹,只有这个File代表的是一个文件夹且文件夹存在返回true,否则返回false 
  boolean isHidden() //判断是否是一个隐藏文件
获取信息:
String getName();//获取名称
String getAbsolutePath() //获取文件的绝对路径
String getPath() //获取路径
  long length() //获取文件的大小,如果文件不存在返回0L,如果是个目录,则返回值不确定
  long lastModified() //返回文件的最后修改时间
String getParent() //获取父目录的字符串形式
  File getParentFile() //获取父目录的File对象形式
 设置方法:
  boolean setLastModified(long time) //设置最后修改时间
boolean setReadable(boolean readable) //设置文件是否可读
boolean setWritable(boolean writable) //设置文件是否可写
  renameTo(File f);//重命名方法,除了可以修改文件名字,还可以实现类似剪切的操作
 获取文件:
  static File[] listRoots() //获取当前系统的所有盘符
String[] list() //获取目录中的所有内容(包括文件和文件夹)的名字组成的字符串数组
  String[] list(FilenameFilter filter) 
File[] listFiles() //获取目录中的所有内容(包括文件和文件夹)的File对象的数组

  File[] listFiles(FileFilter filter) 

package zll.material.java_base_homework;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.Date;

public class FileDemo1 {
	public static void main(String[] args) throws IOException {
		//createNewFile();//只在文件不存在时创建,创建成功返回true,如果文件已经存在不创建,返回false.创建文件时只能在已有的路径下创建。此方法只能创建文件不能创建文件夹。
//		File file = new File("E:\\new1.txt");
//		boolean flag = file.createNewFile();
//		System.out.println(flag);
		//mkdir()//创建文件夹,此方法只能创建一级目录,如果有多级目录无法创建。
//		File file = new File("E:\\aaa");
//		boolean flag = file.mkdir();
//		System.out.println(flag);
		//mkdirs()//创建文件夹,此方法可以创建多级目录,会将路径中须有的所有目录都依次创建出来。
//		File file = new File("E:\\aaa\\bbb\\ccc");
//		boolean flag = file.mkdirs();
//		System.out.println(flag);
		//delete()//既可以删除文件也可以删除文件夹,如果要删除的是一个文件夹,则该文件夹必须位空的才能删除
//		File file = new File("E:\\aaa");
//		boolean flag = file.delete();
//		System.out.println(flag);
	    //boolean canWrite() //判断文件是否可写 
//		File file = new File("c:\\aaa\\bbb\\1.txt");
//		if(file.canWrite()){
//			System.out.println("写入数据。。。。");
//		}else{
//			throw new RuntimeException("文件不可写!");
//		}
		//boolean exists() //判断文件或文件夹是否存在
//		File file = new File("c:\\aaa\\bbb\\11.txt");
//		System.out.println(file.exists());
		//boolean isFile() //判断是否是一个文件,如果File表示的是一个文件且文件存在则返回true,如果File表示的文件不存在或者是一个文件夹则返回false
//		File file = new File("c:\\aaa\\bbb\\1.txt");
//		System.out.println(file.isFile());
		//boolean isHidden() //判断是否是一个隐藏文件
//		File file = new File("c:\\aaa\\bbb\\1.txt");
//		System.out.println(file.isHidden());
		//String getName();//获取名称
//		File file = new File("c:\\aaa\\bbb\\1.txt");
//		System.out.println(file.getName());
		//String getPath() //获取路径
		//String getAbsolutePath() //获取文件的绝对路径
//		File file = new File("1.txt");
//		System.out.println(file.getAbsolutePath());
//		System.out.println(file.getPath());
		//long length() //获取文件的大小,如果文件不存在返回0L,如果是个目录,则返回值不确定
		//long lastModified() //返回文件的最后修改时间
//		File file = new File("c:\\aaa\\bbb\\1.txt");
//		System.out.println(file.length());
//		long lastModTime = file.lastModified();
//		Date date = new Date(lastModTime);
//		System.out.println(date.toLocaleString());
		//String getParent() //获取父目录的字符串形式
//		File file = new File("c:\\aaa\\bbb\\1.txt");
//		System.out.println(file.getParent());
		//boolean setLastModified(long time) //设置最后修改时间
//		File file = new File("c:\\aaa\\bbb\\1.txt");
//		file.setLastModified(System.currentTimeMillis());
		//
//		File file = new File("c:\\aaa\\bbb\\1.txt");
//		file.setReadOnly();
		//renameTo(File f);//重命名方法,除了可以修改文件名字,还可以实现类似剪切的操作
//		File file = new File("c:\\aaa\\bbb\\1.txt");
//		File newFile = new File("c:\\new1.txt");
//		file.renameTo(newFile);
		//static File[] listRoots() //获取当前系统的所有盘符
//		File [] fs = File.listRoots();
//		for(File f : fs){
//			System.out.println(f.getAbsolutePath());
//		}
		//String[] list() //获取目录中的所有内容(包括文件和文件夹)的名字组成的字符串数组
//		File file = new File("c:\\");
//		String [] strs = file.list();
//		for(String str : strs){
//			System.out.println(str);
//		}
		//String[] list(FilenameFilter filter) 
//		File file = new File("c:\\");
//		String [] strs = file.list(new FilenameFilter() {
//			@Override
//			public boolean accept(File dir, String name) {
//				return name.endsWith(".txt");
//			}
//		});
//		for(String str : strs){
//			System.out.println(str);
//		}
	}
}

2.利用递归和文件基本操作命令实现:递归删除非空文件夹

package com.zll.file;

import java.io.File;

/**
	递归的结束条件:如果是文件或空文件夹就删除
	向下递归的条件:如果是非空文件夹就接着递归
 */
public class DelFileDemo1 {
	public static void main(String[] args) {
		del(new File("c:\\aaa"));
	}

	//如果该文件夹是空的就删除,如果不是空的就删除所有子内容再删除当前文件夹
	public static void del(File dir){
		if(dir.list().length==0){
			//文件夹是空的,直接删除
			dir.delete();
		}else{
			//文件夹不是空的,就列出所有孩子,如果是文件,删除,如果是文件夹就递归,所有孩子删干净后,删除自己
			File [] fs = dir.listFiles();
			for(File f : fs){//遍历当前目录的所有孩子
				if(f.isFile()){
					//如果是个文件,删出
					f.delete();
				}else{
					//如果是个文件夹就递
					del(f);
				}
			}
			dir.delete();
		}
	}
}

3.利用递归和文件基本操作命令实现:打印文件夹的目录树结构 

package com.zll.file;

import java.io.File;
/**
	递归:方法自己调用自己
 */
public class ShowFileTreeDemo1 {
	public static void main(String[] args) {
		File file = new File("c:\\aaa");
		tree(file,0);
	}
	
	
	public static void tree(File dir,int deep){
		File [] fs = dir.listFiles();
		for(File f : fs){
			for(int i = 0;i<deep;i++){
				System.out.print("---");
			}
			if(f.isFile()){
				System.out.println(f.getName());
			}else{
				System.out.println(f.getName());
				tree(f,deep+1);
			}
		}
	}
}

本课题设计了一种利用Matlab平台开发的植物叶片健康状态识别方案,重点融合了色彩与纹理双重特征以实现对叶片病害的自动化判别。该系统构建了直观的图形操作界面,便于用户提交叶片影像并快速获得分析结论。Matlab作为具备高效数值计算与数据处理能力的工具,在图像分析与模式分类领域应用广泛,本项目正是借助其功能解决农业病害监测的实际问题。 在色彩特征分析方面,叶片影像的颜色分布常与其生理状态密切相关。通常,健康的叶片呈现绿色,而出现黄化、褐变等异常色彩往往指示病害或虫害的发生。Matlab提供了一系列图像处理函数,例如可通过色彩空间转换与直方图统计来量化颜色属性。通过计算各颜色通道的统计参数(如均值、标准差及主成分等),能够提取具有判别力的色彩特征,从而为不同病害类别的区分提供依据。 纹理特征则用于描述叶片表面的微观结构与形态变化,如病斑、皱缩或裂纹等。Matlab中的灰度共生矩阵计算函数可用于提取对比度、均匀性、相关性等纹理指标。此外,局部二值模式与Gabor滤波等方法也能从多尺度刻画纹理细节,进一步增强病害识别的鲁棒性。 系统的人机交互界面基于Matlab的图形用户界面开发环境实现。用户可通过该界面上传待检图像,系统将自动执行图像预处理、特征抽取与分类判断。采用的分类模型包括支持向量机、决策树等机器学习方法,通过对已标注样本的训练,模型能够依据新图像的特征向量预测其所属的病害类别。 此类课题设计有助于深化对Matlab编程、图像处理技术与模式识别原理的理解。通过完整实现从特征提取到分类决策的流程,学生能够将理论知识与实际应用相结合,提升解决复杂工程问题的能力。总体而言,该叶片病害检测系统涵盖了图像分析、特征融合、分类算法及界面开发等多个技术环节,为学习与掌握基于Matlab的智能检测技术提供了综合性实践案例。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值