Java 知识点整理-14.File类

2023-10-26

应用Alt + /对变量调用方法进行快速打印:选中要打印的内容,按Alt + /选最后一个选项。

方法介绍中,未明确指明对文件或目录进行操作,则两者皆可。


目录

File类的概述

File类的构造方法

File类的创建功能

File类的重命名和删除功能

File类的判断功能

File类的获取功能

案例演示:输出指定目录下指定后缀的文件名

文件名称过滤器的概述

文件名称过滤器的使用

递归

递归练习


File类的概述

public class File extends Object implements Serializable, Comparable<File>,文件和目录路径名的抽象表示形式。用户界面和操作系统使用与系统相关的路径名字符串来命名文件和目录。

java.io包下,使用需要导包。

File更应该叫做一个路径,代表文件路径或者文件夹路径。

路径分为绝对路径和相对路径:

绝对路径是一个固定的路径,从盘符开始。

相对路径相对于某个位置,在eclipse下是指当前项目下,在dos下指的是当前路径。


File类的构造方法

File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新File实例。(根据一个路径得到File对象)

File(String parent, String child) 根据parent路径名字符串和child路径名字符串创建一个点File实例。(根据一个目录和一个子文件/目录得到File对象)

File(File parent, String child) 根据parent抽象路径名和child路径名字符串创建一个新file实例。(根据一个父File对象和一个子文件/目录得到File对象)

案例演示:File类的构造方法。

import java.io.File;

public class Demo1_File {
	public static void main(String[] args) {
		//File(String pathname) 
		/*File file = new File("G:\\01、第一阶段Java基础\\day19\\day19\\video\\19.14_File类(File类的概述和构造方法).avi");	//  \转义字符  \\路径分隔符	传入一个相对路径。
		System.out.println(file.exists());      //检查文件是否存在。   选中file.exists() 按Alt + / 选最后一个。 

		File file2 = new File("xxx.txt");    //传入一个绝对路径,该文件就在此项目下。
		System.out.println(file2.exists());		
		
		File file3 = new File("yyy.txt");
		System.out.println(file3.exists());		//false,不存在。
*/	
		//File(String parent, String child)
		/*String parent = "G:\\01、第一阶段Java基础\\day19\\day19\\video";
		String child = "19.14_File类(File类的概述和构造方法).avi";		//分开,child可以记录不同的子文件/目录
		File file = new File(parent, child);	
		System.out.println(file.exists());*/
		
		//File(File parent, String child) 
		File parent = new File("G:\\01、第一阶段Java基础\\day19\\day19\\video");		//将父级路径封装成File对象,可以使用File中的一些功能,比String更强大一些。
		String child = "19.14_File类(File类的概述和构造方法).avi";	
		File file = new File(parent, child);
		System.out.println(file.exists());
		System.out.println(parent.exists());
	}
}

File类的创建功能

public boolean createNewFile() 创建文件,如果存在这样的文件,就不创建了。

public boolean mkdir() 创建文件夹,如果存在这样的文件夹,就不创建了。

public boolean mkdirs() 创建多级文件夹,如果父文件夹不存在,会帮你创建出来。

案例演示:File类的创建功能。

import java.io.File;
import java.io.IOException;

public class Demo2_FileMethod {
	public static void main(String[] args) throws IOException {
		//public boolean createNewFile() 
		/*File file = new File("yyy.txt");
		System.out.println(file.createNewFile());	//避免因错误路径错误产生异常,故在方法上抛出IOException。  没加盘符的情况下, 如果没看到生成的文件,选中该项目,按F5刷新即可。  如果没有就创建,返回true;如果有就不创建,返回false。
		
		File file2 = new File("zzz");		//不加后缀也可以创建文件。但最好加上,方便判断打开此文件的软件。
		System.out.println(file2.createNewFile());*/
		
		//public boolean mkdir() 
		/*File dir1 = new File("aaa");		
		System.out.println(dir1.mkdir());	//无则建返true,有不建返false。  F5刷新项目。
		
		File dir2 = new File("bbb.txt");	//文件夹也可以有后缀,但一般不这么定义。
		System.out.println(dir2.mkdir());*/
		
		//public boolean mkdirs()
		File dir1 = new File("ccc\\ddd");	//创建多级目录。
		System.out.println(dir1.mkdirs());
		
	}
}

注意事项:如果你创建文件或者文件夹忘了写盘符路径。那么,被当作相对路径,默认在项目路径下。


File类的重命名和删除功能

public boolean renameTo(File dest) 把文件重命名为指定的文件路径。也可以用来剪切。

public boolean delete() 删除文件或者文件夹。

重命名注意事项:

如果路径名相同,就是改名。如果路径名不同,就是改名并剪切。

删除注意事项:

Java中的删除不走回收站。

要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹(文件夹必须为空)。Windows中删除文件夹是先将文件夹中的每一个文件/子目录删除,再删文件夹。

案例演示:File类的重命名和删除功能。

import java.io.File;

public class Demo3_FildMethod {
	public static void main(String[] args) {
		//public boolean renameTo(File dest)
		/*File file1 = new File("xxx.txt");
		File file2 = new File("ooo.txt");  //改名
*/		
		/*File file1 = new File("ooo.txt");
		File file2 = new File("G:\\xxx.txt");  //改名并剪切
		System.out.println(file1.renameTo(file2));*/
		
		//public boolean delete()
		File file1 = new File("yyy.txt");		//删除文件yyy.txt
		System.out.println(file1.delete());
		
		File file2 = new File("aaa");			//删除目录aaa
		System.out.println(file2.delete());
		
		File file3 = new File("ccc");
		System.out.println(file3.delete());		//ccc删除失败,因为他还有子目录ddd,文件夹不为空。
	}
}

File类的判断功能

public boolean isDirectory() 判断是否是目录。

public boolean isFile() 判断是否是文件。

public boolean exists() 判断是否存在。

public boolean canRead() 判断是否可读。

public boolean canWrite() 判断是否可写。

public boolean isHidden() 判断是否隐藏。

补充方法:

public boolean setReadable(boolean readable) 一种方便的方法来设置所有者对此路径名的读取权限。 

public boolean setWritable(boolean writable) 一种方便的方法来设置所有者对此路径名的写入权限。

案例演示:File类的判断功能。

import java.io.File;

public class Demo4_FileMethod {
	public static void main(String[] args) {
/*		//public boolean isDirectory()
		File dir1 = new File("ccc");
		System.out.println(dir1.isDirectory());		//true,ccc是一个文件夹。
		
		File dir2 = new File("zzz");
		System.out.println(dir2.isDirectory());		//false,zzz是一个文件,不是文件夹。
		
		//public boolean isFile()
		System.out.println(dir1.isFile());		//false,ccc不是一个文件。
		System.out.println(dir2.isFile());		//true,zzz是一个文件。
*/	
		//public boolean canRead()
		File file = new File("zzz");
		file.setReadable(false);			//设置是否可读。
		System.out.println(file.canRead());	//true,可读。设置未起作用,因为Windows系统认为所有的文件都是可读的。所以,无论setReadable()设置true还是false,都是可读的。
		//public boolean canWrite()
		file.setWritable(false);			//设置是否可写。
		System.out.println(file.canWrite());//false,不可写。设置起作用了。Windows系统可以设置为不可写。
		
		//public boolean isHidden()
		File file2 = new File("aaa.txt");
		System.out.println(file2.isHidden());//true,文件是隐藏的。
		System.out.println(file.isHidden()); //false,文件非隐藏。
	}
}

File类的获取功能

public String getAbsolutePath() 获取绝对路径。

public String getPath() 获取构造方法里传入的路径。传的相对路径获取的就是相对路径,传的绝对路径获取的就是绝对路径。

public String getName() 获取名称。

public long length() 获取长度。长度即字节数。

public long lastModified() 获取最后一次的修改时间,毫秒值。

public String[] list() 获取指定目录下的所有文件或者文件夹的名称数组。

public File[] listFiles() 获取指定目录下的所有文件或者文件夹的File(文件对象)数组 。

案例演示:File类的获取功能。

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo5_FileMethod {
	public static void main(String[] args) {
/*		//public String getAbsolutePath()
		File file1 = new File("ccc.txt");		//将ccc.txt封装成一个File对象。
		File file2 = new File("C:\\Users\\Administrator\\eclipse-workspace\\day19\\ccc.txt");
		System.out.println(file1.getAbsolutePath());	//获取绝对路径C:\Users\Administrator\eclipse-workspace\day19\ccc.txt
		System.out.println(file2.getAbsolutePath());	//获取绝对路径C:\Users\Administrator\eclipse-workspace\day19\ccc.txt
		
		//public String getPath()
		System.out.println(file1.getPath());	//获取构造方法里传入的相对路径ccc.txt
		System.out.println(file2.getPath());	//获取构造方法里传入的绝对路径C:\Users\Administrator\eclipse-workspace\day19\ccc.txt
		
		//public String getName()
		System.out.println(file1.getName());	//获取文件/目录名称ccc.txt
		System.out.println(file2.getName());	//获取文件/目录名称ccc.txt
		
		//public long length()
		System.out.println(file1.length());		//获取长度 7 右键文件-Properties-Resource-size也能看到
		
		//public long lastModified()
		System.out.println(file1.lastModified());	//获取最后修改时间,以毫秒值的形式返回1543061114858 右键文件-Properties-Resource-Last modified也能看到
		//通过最后修改时间的毫秒值获取具体时间
		Date d = new Date(file1.lastModified());
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");	
		System.out.println(sdf.format(d));			//2018年11月24日 20:05:14
*/		
		//public String[] list()
		File dir = new File("G:/01、第一阶段Java基础/day19/day19/video");	// \\路径分隔符 	/也是路径分隔符
		String[] arr = dir.list();
		
		for (String string : arr) {
			System.out.println(string);		//把指定目录下所有的文件名称全部获取,仅为了获取名字。
		}

		//public File[] listFiles()
		File[] subFiles = dir.listFiles();
		
		for (File file : subFiles) {
			System.out.println(file);		//把指定目录下所有的文件全路径全部获取,全路径是因为File类重写了toString(),所以打印引用时,返回全路径。但我们其实可以对每一个file对象添加操作。所以实际获取的是文件对象。
		}
	}
}

案例演示:输出指定目录下指定后缀的文件名

需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称。

import java.io.File;

/**
 * 需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称。
 */
public class Test3 {
	public static void main(String[] args) {
		File dir = new File("H:/");
		
		/*String[] arr = dir.list();		//获取H盘下所有的文件和目录,但不能获取子目录内的文件/目录
		for (String string : arr) {
			if(string.endsWith(".png")) {
				System.out.println(string);
			}
		}*/
		//开发用这种
		File[] subFiles = dir.listFiles();	//获取H盘下所有的文件和文件夹对象
		
		for (File subFile : subFiles) {
			if(subFile.isFile() && subFile.getName().endsWith(".png")) {
				System.out.println(subFile);
			}
		}
	}
}

文件名称过滤器的概述

public String[] list(FilenameFilter filter) 返回一个字符串数组,这些字符串指定此路径名表示的目录中满足过滤器的文件和目录。

 public File[] listFiles(FileFilter filter) 返回路径名数组,这些路径名表示此路径名表示的目录中满足指定过滤器的文件和目录。

接口FilenameFilter概述:

public interface FilenameFilter,实现此接口的类实例可用于过滤器文件名。java.io包下,使用需要导包。

接口FilenameFilter方法:

public boolean accept(File dir, String name) 测试指定文件是否应该包含在某一文件列表中。


文件名称过滤器的使用

需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称。

源码分析:带文件名称过滤器的list()方法的源码。

import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.List;

public class Demo6_FilenameFilter {
	public static void main(String[] args) {
		File dir = new File("H:/");
		String[] arr = dir.list(new FilenameFilter() {		//用匿名内部类传接口子类对象      过滤器是把符合条件的拿出来存储到数组里,这用就不用遍历数组再找符合条件了
			public boolean accept(File dir, String name) {	//dir传入的路径,name文件/目录的名字
				File file = new File(dir, name);
				return file.isFile() && file.getName().endsWith(".png");
			}
		});		
		
		for (String string : arr) {
			System.out.println(string);
		}
		//源码,底层用过滤器实现的。
		/*public String[] list(FilenameFilter filter) {
		        String names[] = list();		//无参list()会把当前文件夹下的所有文件/目录都拿到
		        if ((names == null) || (filter == null)) {
		            return names;
		        }
		        List<String> v = new ArrayList<>();
		        for (int i = 0 ; i < names.length ; i++) {
		            if (filter.accept(this, names[i])) {    //this指文件对象,names[i]相当于每一个文件。 文件路径+文件名。
		                v.add(names[i]);					//if判断为true,就将文件名添加到集合v中。
		            }
		        }
		        return v.toArray(new String[v.size()]);		//将集合转成数组,指定长度为集合v的size,并返回。
		}*/
	}
}

递归

递归:

方法自己调用自己。

弊端:

如果方法调用次数过多,容易导致栈内存溢出StackOverFlowError。

好处:

不用知道循环次数。

问题1:构造方法是否可以递归调用?

不可以。构造方法是创建对象的时候系统自己去调用,调用后构造方法又调用自己,死循环。

问题2:递归是否必须有返回值?

不一定(可以有,也可以没有)。没有的情况:根据路径找指定类型的文件,只需要把符合条件的打印出来,无需返回。

练习:5的阶乘。

/**
 * 练习:5的阶乘。
 * 分析:5! = 5 * 4 * 3 * 2 * 1
 * 
 *          5 * fun(4)(代表4!)
 *          	4 * fun(3)(代表3!)
 *          		3 * fun(2)(代表2!)
 *          			2 * fun(1)(代表1!)
 */
public class Demo10_Digui {
	public static void main(String[] args) {
		//for循环实现5的阶乘
/*		int result = 1;
		for (int i = 1; i <= 5; i++) {
			result = result * i;
		}
		System.out.println(result);
*/
		System.out.println(fun(5));  //算到int最大值时,再往上加就溢出了,没有办法再求了,所以结果为0,例如1000!
	}
	
	public static int fun(int num) {
		if(num == 1) {
			return 1;
		}else {
			return num * fun(num - 1);
		}
	}
}

递归练习

需求:从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.java文件名。

import java.io.File;
import java.util.Scanner;

/**
 * 需求:从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.java文件名。
 * 分析:
 * 从键盘输入接收一个文件夹路径
 * 1.从键盘接收一个文件夹路径(可能接收到的路径:不存在的路径、文件路径、文件夹路径)。
 * 2.如果录入的是不存在的路径,给予提示。
 * 3.如果录入的是文件路径,给予提示。
 * 4.如果录入的是文件夹路径,直接返回。
 * 打印出该文件夹下所有的.java文件名
 * 5.获取到给文件夹路径下的所有文件和文件夹,存储在File数组中。
 * 6.遍历数组,对每一个文件或文件夹做判断。
 * 7.如果是文件,并且后缀是.java的,就打印。
 * 8.如果是文件夹,就递归调用。
 */
public class Test5 {
	public static void main(String[] args) {
		File dir = getDir();	//获取文件夹路径
		printJavaFile(dir);
		
	}
	
	/*
	 * 获取键盘录入的文件夹路径
	 * 1.返回值类型: File
	 * 2.参数列表:不需要
	 */
	public static File getDir() {
		//1.从键盘接收一个文件夹路径(可能接收到的路径:不存在的路径、文件路径、文件夹路径)。
		Scanner sc = new Scanner(System.in);	//创建键盘录入对象
		System.out.println("请输入一个文件夹路径");
		while(true) {
			String line = sc.nextLine();		//将键盘录入的文件夹路径存储
			File dir = new File(line);			//封装成File对象
			//2.如果录入的是不存在的路径,给予提示。
			if(!dir.exists()) {
				System.out.println("您录入的文件夹路径不存在,请重新录入文件夹路径:");
			//3.如果录入的是文件路径,给予提示。
			}else if(dir.isFile()) {
				System.out.println("您录入的是文件路径,请重新录入文件夹路径");
			//4.如果录入的是文件夹路径,直接返回。
			}else {
				return dir;
			}
		}
	}
	/*
	 * 获取文件夹路径下的所有 .java文件
	 * 1.返回值类型:void
	 * 2.参数列表:File dir
	 */
	public static void printJavaFile(File dir) {
		//5.获取到给文件夹路径下的所有文件和文件夹,存储在File数组中。
		File[] subFiles = dir.listFiles();
		//6.遍历数组,对每一个文件或文件夹做判断。
		for (File subFile : subFiles) {
			//7.如果是文件,并且后缀是.java的,就打印。
			if(subFile.isFile() && subFile.getName().endsWith(".java")) {
				System.out.println(subFile);
			//8.如果是文件夹,就递归调用。
			}else if(subFile.isDirectory()) {
				printJavaFile(subFile);
			}
		}
	}
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 知识点整理-14.File类 的相关文章

  • 菜鸟学Java public static void main(String[] args) 是什么意思?

    目录 1 经典程序解析 2 包里面的多个类 2 1 全限定名调用程序 2 2 包名的层数 2 3 类中main位置的选择 2 4 不同包中类的调用 3 void位置返回值 4 同一个包内的类调用 5 public位置选择 6 String
  • SpringBoot集成redis

    一 下载安装redis 1 官网地址 https redis io 2 GitHub地址 https github com MicrosoftArchive redis tags 3 安装 自行安装 二 SpringBoot集成redis
  • java中的循环

    java中的循环有四种 循环由四部分组成 1 初始部分 循环判断的变量 2 循环条件 布尔表达式 3 循环操作 循环执行的代码 4 迭代部分 更新循环变量 1 while循环 while的特点 首次判断不满足 则一次都不会执行 先判断 再执
  • 狂神。SMBMS(超市订单管理系统)

    SMBMS 超市订单管理系统 代码 建议把静态资源和sql拿过来用 其他自己写一遍练手 注意修改相关配置文件 链接 https pan baidu com s 12MmpF9msJVjLT1U77XYfRw 提取码 11fv 数据库 项目如
  • 关于String的hashcode,以及判断字符串是否相等的解析

    跟着老师的方法验证equals方法的重写 由于误写发现运行结果和预想的不一样 先上代码 package com wuyw oo import java util Objects author wuyw2020 date 2019 10 28
  • Java创建多线程的五种写法

    目录 一 lambda表达式 强烈推荐 最简单 基础格式 举例 运行结果 二 继承 Thread 重写 run 基础格式 举例 运行结果 三 实现 Runnable 重写 run 基础格式 举例 运行结果 四 使用匿名内部类 继承 Thre
  • eclipse运行程序时只有run on server

    最近写jsp的程序比较多 写java程序时 发现一点击运行按钮就开始启动服务器了 这是因为没有写主函数的原因 注意这个问题
  • idea运行项目报错Cannot run program “C:\Program Files\Java\jdk1.8.0_121\bin\java.exe......解决办法

    在环境变量都配置完好的情况下 基本就是idea的配置除了问题可以检查以下几点 1 SDKs检查 2 路径检查 3 项目配置检查
  • java连接mysql数据库(3)插入数据,详细

    连接数据库并向表中插入数据 代码 public class today public static void main String args String url jdbc mysql localhost 3306 my url是固定的
  • Java中的栈区和堆区问题(关于数组)

    Java中创建的局部变量等是存放在栈区的 而数组是存放在堆区的 那些new出来的对象也大多存放于堆区 栈区的空间往往不大 而堆区空间就会大很多 这里我们创建一个数组 如果在idea中打印a 会得到一串符号 这个是数组在堆区首元素的地址 代表
  • HashMap的使用

    put方法 Hashmap的put方法放值 可以单次向HashMap中添加一个键值对 没有顺序 HashMap
  • mssql数据库,数据库同步,分布式数据库,数据库集群,如何实现

    由于项目需要 产品的部署必须考虑到安全和灾难的解决办法 由于之前一直做的的小项目 基本都是单服务器 单数据库结构 但是由于一次灾难 把这个问题提上了日程 本人资历浅薄 很多东西还不是很熟悉 最近在网上百度了一大堆相关的东西 基本有了大概的思
  • 蓝桥杯有必要参赛吗?

    昨天和群里的小伙伴在群里聊 有的小伙伴竟然说蓝桥杯一等奖没有含量 我也是醉了 就像去年看了一个号主写的 研究生遍地都是 放眼全国14亿人口 别说研究生了 本科生占比有多少 蓝桥杯是我人生中得到的第一个大奖 在蓝桥杯大赛备赛期间 我学到了很多
  • java常见面试题及答案 11-20(JVM)

    11 JVM内存分哪几个区 每个区的作用是什么 java虚拟机主要分为以下一个区 方法区 1 有时候也成为永久代 在该区内很少发生垃圾回收 但是并不代表不发生GC 在这里进行的GC主要是对方法区里的常量池和对类型的卸载 2 方法区主要用来存
  • 【Java 学习】方法 和 一些编程案例

    文章目录 一 概述 二 案例 1 计算1 n的和返回 2 判断整数是奇数还是偶数 3 数组求最值改方法实现 三 方法的内存原理 四 方法参数传递机制 基本类型 引用类型 五 参数传递的案例 1 打印整型数组内容 2 从数组中查询指定元素的索
  • JAVA中的权限限定修饰符

    今日份鼓励 改变世界的根本是在改变自己 目录 一 访问权限修饰符 二 public修饰符 三 protected修饰符 四 不使用修饰符 默认修饰符 五 private修饰符 六 类的访问修饰符不使用private与protected的原因
  • ERROR: transport error 202: gethostbyname: unknown host

    今天碰到了一个很奇怪的问题 当我启动tomcat的时候 报了如下的错误 ERROR transport error 202 gethostbyname unknown host ERROR JDWP Transport dt socket
  • JSP 弹出框 子页面给父页面回传参数

    做一个jsp的页面 然后又弹出一个对话框 并且把输入框的值返回到文本中 具体代码如下 1 父页面 写道
  • Java封装性(包含this关键字,构造器等)

    目录 一 封装性的含义 二 封装性的作用 三 封装性的体现 3 1 四种权限修饰符的介绍 3 2 分装性具体的实现 四 构造器的解释 4 1 构造器的作用 4 2 注意事项 4 3 构造器的举例说明 五 this关键字的使用 5 1 thi
  • 复制虚拟机之后网关重启问题解决

    在复制完成之后没有可以连接的IP地址 于是百度寻求解决方案 根据找到的方案中 实际解决办法如下 1 输入以下命令 清空该文件内容 echo gt etc udev rules d 70 persistent rules 2 删除该文件 或者

随机推荐

  • 力扣-235-二叉搜索树的最近公共祖先-javaScript实现

    一 题目链接 力扣题目链接 二 题意分析 因为本题操作的是二叉搜索树 所以我们可以根据二叉搜索树的特性来做题 关于二叉搜索树的特性在前面也有提到 这里就不再过多赘述 先说迭代 对于本题迭代法相当代码简单 三 代码实现 迭代法 var low
  • STM32系列(HAL库)——F103C8T6通过SPI方式读写W25Q64—(Flash存储模块)

    1 软件准备 1 编程平台 Keil5 2 CubeMX 3 XCOM 串口调试助手 2 硬件准备 1 W25Q64模块 2 F1的板子 本例使用经典F103C8T6 3 ST link 下载器 4 USB TTL模块 5 杜邦线若干 3
  • 基于小波变换的条纹图相位提取方法及matlab代码实现

    基于小波变换的条纹图相位提取方法及matlab代码实现 引言 在许多光学应用中 条纹图像是一种常见的景象 例如 条纹图像可以用于形貌量测 如三维重建 运动测量 如速度场测量 以及表面缺陷检测等领域 而在条纹图像处理中 相位提取是一项非常关键
  • Hashpump实现哈希长度扩展攻击

    Hashpump实现哈希长度扩展攻击 RCEME 0x01 HASH长度拓展攻击 哈希长度拓展攻击的原理有点过于复杂了 这里直接copy其他大佬的描述了 长度扩展攻击 length extension attack 是指针对某些允许包含额外
  • MYSQL访问控制与安全管理

    用户账户管理 利用select语句查看mysql数据库的使用者帐号 select user from mysql user 1 创建用户帐号 语法格式 create user lt 用户名 gt identified by password
  • 在师生们框架下的Spring mvc编程错误

    在ssm框架下 Springmvc 编程 时 出现传值问题 从后台传到前台时可以使用 Resource HttpSession session 采用jsp中的参数名与control层响应的的参数名一致传参 RequestMapping va
  • 微信小程序开发:实现微信支付功能

    微信支付是一种便捷 安全 快速的支付方式 可以在微信中轻松完成支付 不需要用户输入过多的信息 只需要简单的几步即可完成 在微信小程序中 也可以集成微信支付功能 为用户提供更加完善的购买体验 下面将详细介绍微信小程序开发中如何实现微信支付功能
  • 如何提升 API-First 设计流程

    一个 API First 设计应该具有可复用性 互操作性 可修改性 用户友好性 安全性 高效性 务实性 并且重要的是 与组织目标保持一致 这些基本特征将确保 API 能够有效地为 API First 组织战略和开发模式做出贡献 在这种模式中
  • 1入门基础知识

    1 C 98关键字 面试 C 语言中一共有多少个关键字 在C 98中有63个关键字 在回答的时候一定要带上语言标准带上 2 命名空间 2 1 概念 实际就是一个新的作用域 用来解决命名冲突问题 2 2 定义方式 方式一 namespace
  • Java的安装以及配置

    Java安装及配置 一 Java安装 一 准备工作 1 在磁盘中新建两个文件夹 建议不要新建在系统盘中 我将其分别命名为JDK1 8 jre1 8 0 102 作为一会儿安装使用到的路径 2 下载好工具软件包 我的是64位的 可以从官网下载
  • c语言数学字符,C语言中涉及的数学问题

    数学函数如何用C语言来表示 但是这些文件的头应写为 include或者 include math h sin x sinx asin x arcsinx cos x cosx acos x arccosx tan x tanx atan x
  • 关于敏捷的一点感悟笔记

    此笔记写于大约二 三年前 现贴出存档 有点顿悟的感觉了 发挥团队的力量 让每个人主动计划 主动设计 主动发表意见 任何人可以发起讨论 任何人可以发起改进 而不是一个人设计 一个人分配任务 一个人设计思路 那样就不是团队 是包工头和工人的关系
  • 大神浅谈无人机飞控软件设计 系统性总结

    写在前面 深感自己对飞控软件 算法的知识点过于杂乱 很久没有进行系统的总结了 因此决定写几篇文章记录一些飞控开发过程的知识点 主要是针对一些软件 算法部分进行讨论 如内容有错误 欢迎指出 1 飞控软件的基本模块 无人机能够飞行主要是依靠传感
  • 使用flex布局,子元素怎么高度自适应?

    1 想用flex实现这种布局 2 各个子元素高度不固定 从上到下依次排列 请问可以怎么实现 附 我对父元素定义了下面的规则 display flex flex flow row wrap 对子元素用p标签放了一些文本 未设置高度 结果显示效
  • 如何实现自定义的DataSource

    有时候我们希望能自己写一个component 并可以像DataSet 那样可以在设计时可以显示出其中的collection 以及collection中的可绑定的属性 一下提供了一个简要的介绍 IListSource 如果你的componen
  • 微信小程序插件接入

    微信小程序插件接入 插件 是可被添加到小程序内直接使用的功能组件 开发者可以像开发小程序一样开发一个插件 供其他小程序使用 同时 小程序开发者可直接在小程序内使用插件 无需重复开发 为用户提供更丰富的服务 如需开发插件 请阅读开发插件部分
  • java异常处理throw new RuntimeException(e)

    1 java try catch 异常后还会继续执行吗 catch 中如果你没有再抛出异常 那么catch之后的代码是可以继续执行的 但是try中 报错的那一行代码之后 一直到try结束为止的这一段代码 是不会再执行的 代码1 public
  • 跨域 nginx反向代理proxy未添加pathRewrite导致的404问题

    跨域 nginx反向代理proxy未添加pathRewrite导致的404问题 pathRewrite是使用proxy进行代理时 对请求路径进行重定向以匹配到正确的请求地址 未添加pathWrite时 proxy csdn target h
  • ecshop 404设置方法

    ecshop是一款非常好的B2C开源程序 但SEO方面做的不足的地方不少 比如404 TITLE方面 今天分享下ecshop404设置方法 默认的ECSHOP也做了这方面的设置 它的设置是这样的 当某个商品或者商品类别不存在的时候 自动跳转
  • Java 知识点整理-14.File类

    应用Alt 对变量调用方法进行快速打印 选中要打印的内容 按Alt 选最后一个选项 方法介绍中 未明确指明对文件或目录进行操作 则两者皆可 目录 File类的概述 File类的构造方法 File类的创建功能 File类的重命名和删除功能 F