文件名createNewFile
创建新的文件(空文件)
delete()删除
rename修改文件名
exists()查询文件是否存在文件夹
mkdir只能创建一个新的文件夹
mkdirs嵌套式创建文件夹
delete删除文件夹
rename修改文件夹的名字isFile是否文件,isDirectory是否文件夹实际开发过程中获取项目目录,获取项目目录(需要项目文档文件,word,excel数据文件)获取内容
getgetName()应用处理图片,只有图片文件符合要求,获取文件名字。
底层用的substring为判断你的文件名getParent()
父类的目录lastIndexOf找”//”,substring返回串
getPath()获取路径-全部路径
getAbsolutePath()获取相对地址,获取的项目目录判断文件是否可写canWrite判断文件是否可读canRead(应用于服务器中的开发,服务器linux系统)最终的修改时间lastModified()查看服务器是否存在攻击行为(保护文件的安全)最后修改时间与日志记录文件的用户最后修改时间,如果用户允许操作,这个用户不允许操作,这个用户是攻击用户。文件长度length()Delete和deleteOnExit遍历文件(遍历指定目录下所有文件,文件判断是否是图片,是图片,移动到某个目录去保存,输出文件修改时间。List()Listfilelist打印的是目录和文件,没有路径,,返回字符串的数组listFiles返回的目录和文件,带路径,返回的是文件数组文件的拷贝,复制,剪切,粘贴都是对文件内容进行操作。剪贴板理解成一个内存。
文件内容的操作文件都在网络传输,网络传输按字节传输。
计算机数据字节存储。
Io两个流字节流:接收的是任意格式FileInputStream文件输入流(电脑接收)输入流读方法read读入结束closeFileOutputStream文件输出流(电脑输出)输出流就是写write写入结束close复制:把文件输入流read读内容,再输出流写到另外一个地方Write一个字节一个字节做Buffered
字符流:接收的都是文字
代码如下:
testPath.java:
import
com.sun.xml.internal.ws.addressing.WsaActionUtil;
import
java.io.File;
public
class
testPath {
public
static
void
main(String[] args) {
File myfile=
new
File(
"C:\\Users\\Administrator\\Desktop\\a.txt"
);
System.out.println(
"输出文件名:"
);
System.out.println(myfile.getName());
System.out.println(
"输出文件路径:"
);
System.out.println(myfile.getPath());
System.out.println(
"输出文件相对路径,在项目开发中,常用的项目目录"
);
System.out.println(myfile.getAbsolutePath());
}
}
testList.java:
import
java.io.File;
import
java.util.Arrays;
public
class
testList {
public
static
void
main(String[] args) {
/*遍历给定文件夹中的所有文件,可能有文件夹套用文件夹,如果是图片是输出文件名,如果是文本文件,输出最后的修改时间遍历文件需要用list listFile判断得到文件还是目录 是文件是判断是图片还是文本文件,是目录继续进行遍历 isFile isDirectory
是文件输出最后的修改时间 lastModified是图片输入路径和文件名 getName() getPath() getAbsolutePath()
思路中:给定的文件夹,文件夹的位置并不清楚,不清楚内容就是参数*/
checkFile(
new
File(
"C:\\Users\\Administrator\\Desktop\\abc"
));
}
//需要传入一个目录
public
static
void
checkFile(File myfile){
//调用list listFile列出目录所有文件,这里必须有一个File类
// File myfile=new File(path);
//File类中list listFiles罗列当前文件夹下的所有文件名,返回数组,必然使用Arrays.toString
//list打印的是目录和文件,没有路径,
//listFiles返回的目录和文件,带路径
// System.out.println(Arrays.toString(myfile.list()));
// System.out.println(Arrays.toString(myfile.listFiles()));
//当前需要带路径,这里使用listFiles,这个方法返回是数组,listFile本身返回的就是File类,这里传入参数是File方便
//获取当前时间戳
long
currentTime=System.currentTimeMillis();
File[] mypathes=myfile.listFiles();
//上面语句结果是数组,遍历每一个文件,判断当前的名字是文件还是文件夹,这里暂时不用索引,不用索引使用增强for
for
(File mypath:mypathes){
//isFile isDirectory来判断文件或者文件夹
if
(mypath.isFile()){
//如果是文件,判断是否是文本文件还是图片,传入的是File,先取File的getName()文件名
if
(mypath.getName().endsWith(
".txt"
)){
System.out.println(mypath.getName()+
"------"
+(currentTime-mypath.lastModified()));
}
else
if
(mypath.getName().endsWith(
".jpg"
)||mypath.getName().endsWith(
".png"
)||
mypath.getName().endsWith(
".gif"
)){
System.out.println(mypath.getPath());
}
}
else
if
(mypath.isDirectory()){
//这里再写上面的方法.在这个方法又回到方法调用这个方法,出现自身方法调用自身方法,典型的递归
//调用方法时,循环中mypath使用的是File,但是函数接收的参数是String
checkFile(mypath);
}
}
}
}
testList1.java:
import java.io.File; import java.util.Arrays; public class testList1 { public static void main(String[] args) { /* 遍历给定文件夹中的所有文件,可能有文件夹套用文件夹,如果是图片是输出文件名,如果是文本文件,输出最后的修改时间 遍历文件需要用list listFile 判断得到文件还是目录 是文件是判断是图片还是文本文件,是目录继续进行遍历 isFile isDirectory 是文件输出最后的修改时间 lastModified 是图片输入路径和文件名 getName() getPath() getAbsolutePath() 思路中:给定的文件夹,文件夹的位置并不清楚,不清楚内容就是参数 */ checkFile( new File( "C:\\Users\\Administrator\\Desktop\\abc" )); } //需要传入一个目录 public static void checkFile(File myfile){ //调用list listFile列出目录所有文件,这里必须有一个File类 // File myfile=new File(path); //File类中list listFiles罗列当前文件夹下的所有文件名,返回数组,必然使用Arrays.toString //list打印的是目录和文件,没有路径, //listFiles返回的目录和文件,带路径 // System.out.println(Arrays.toString(myfile.list())); // System.out.println(Arrays.toString(myfile.listFiles())); //当前需要带路径,这里使用listFiles,这个方法返回是数组,listFile本身返回的就是File类,这里传入参数是File方便 //获取当前时间戳 long currentTime=System.currentTimeMillis(); File[] mypathes=myfile.listFiles(); String[] pics={ ".jpg" , ".png" , ".gif" , "txt" }; short index=- 1 ; //上面语句结果是数组,遍历每一个文件,判断当前的名字是文件还是文件夹,这里暂时不用索引,不用索引使用增强for for (File mypath:mypathes){ String myname=mypath.getName(); String myfilepath=mypath.getPath(); int len=myname.length(); index=( short )Arrays.asList(pics).indexOf(myname.substring(len- 4 )); //isFile isDirectory来判断文件或者文件夹 if (mypath.isFile()){ //计算索引,本身就是一个值,char型最快,根据数组索引 //如果是文件,判断是否是文本文件还是图片,传入的是File,先取File的getName()文件名 switch (index){ case 0 : case 1 : case 2 :System.out.println(mypath.getPath()); break ; case 3 : System.out.println(mypath.getName()+ "------" +(currentTime-mypath.lastModified())); } } else if (mypath.isDirectory()){ //这里再写上面的方法.在这个方法又回到方法调用这个方法,出现自身方法调用自身方法,典型的递归 //调用方法时,循环中mypath使用的是File,但是函数接收的参数是String checkFile(mypath); } } } } |
testList2.java:
import java.io.File; import java.util.Arrays; public class testList2 { public static void main(String[] args) { /* 遍历给定文件夹中的所有文件,可能有文件夹套用文件夹,如果是图片是输出文件名,如果是文本文件,输出最后的修改时间 遍历文件需要用list listFile 判断得到文件还是目录 是文件是判断是图片还是文本文件,是目录继续进行遍历 isFile isDirectory 是文件输出最后的修改时间 lastModified 是图片输入路径和文件名 getName() getPath() getAbsolutePath() 思路中:给定的文件夹,文件夹的位置并不清楚,不清楚内容就是参数 */ checkFile( "C:\\Users\\Administrator\\Desktop\\abc" ); } //需要传入一个目录 public static void checkFile(String path){ //调用list listFile列出目录所有文件,这里必须有一个File类 File myfile= new File(path); //File类中list listFiles罗列当前文件夹下的所有文件名,返回数组,必然使用Arrays.toString //list打印的是目录和文件,没有路径, //listFiles返回的目录和文件,带路径 // System.out.println(Arrays.toString(myfile.list())); // System.out.println(Arrays.toString(myfile.listFiles())); //当前需要带路径,这里使用listFiles,这个方法返回是数组,listFile本身返回的就是File类,这里传入参数是File方便 //获取当前时间戳 long currentTime=System.currentTimeMillis(); String[] mypathes=myfile.list(); String[] pics={ ".jpg" , ".png" , ".gif" , ".txt" }; short index=- 1 ; //上面语句结果是数组,遍历每一个文件,判断当前的名字是文件还是文件夹,这里暂时不用索引,不用索引使用增强for for (String mypath:mypathes){ int len=mypath.length(); if (len> 4 ){ index=( short )Arrays.asList(pics).indexOf(mypath.substring(len- 4 )); } //构建路径 String newpath=myfile.getPath()+ "\\" +mypath; //构建出后这是一个新的FIle File mynewfile= new File(newpath); //isFile isDirectory来判断文件或者文件夹,调用方法的类是File if (mynewfile.isFile()){ //计算索引,本身就是一个值,char型最快,根据数组索引 //如果是文件,判断是否是文本文件还是图片,传入的是File,先取File的getName()文件名 switch (index){ case 0 : case 1 : case 2 :System.out.println(newpath); break ; case 3 : System.out.println(newpath+ "------" +(currentTime-mynewfile.lastModified())); } } else { //这里再写上面的方法.在这个方法又回到方法调用这个方法,出现自身方法调用自身方法,典型的递归 //调用方法时,循环中mypath使用的是File,但是函数接收的参数是String //再调用方法需要构建一个完整路径 checkFile(newpath); } } } } |
testcopy.java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class testcopy { public static void main(String[] args) throws FileNotFoundException, IOException { //复制文件,有输入,有输出,输入一个路径,输出一个路径 //FileInputStream输入流,有个输入 FileInputStream fis= new FileInputStream( "C:\\Users\\Administrator\\Desktop\\aaa.png" ); //FileOutputStream,有个输出 FileOutputStream fos= new FileOutputStream( "C:\\Users\\Administrator\\Desktop\\bbb.png" ); //read方法读文件,返回的整型,如果read返回-1就读结束了,字节流是一个字节一个字节读 //在java中有一个类型一个字节一个字节存储,就是char,ch存储就是每一个字节 //ch存储的字节码不就是ascii码对应的字符 //字节慢,读很多数据,很多数据组成字节数组 int ch= 0 ; byte [] mybytes= new byte [ 1024 ]; while ((ch=fis.read(mybytes))!=- 1 ){ fos.write(mybytes); } //结束后flush // fos.flush(); //流运行结束,一定要关闭 fis.close(); fos.close(); } } |
testArray.java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class testArray { public static void main(String[] args) { //数组 String[] myarrs={ "1" , "2" , "3" }; //数组工具把数组转成列表 //列表 List<String> arrs=Arrays.asList(myarrs); System.out.println(arrs.indexOf( "1" )); } } |
MyFile.java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | import java.io.File; import java.io.IOException; public class MyFile { public static void main(String[] args) throws IOException { //这段话并不检查文件是否有,也不会生成文件 File myfile= new File( "C:\\Users\\Administrator\\Desktop\\a.txt" ); //创建文件的方法create myfile.createNewFile(); //删除文件的方法delete // myfile.delete(); //改,文件名,文件的相关属性 //renameTo参数类型是File,new File myfile.renameTo( new File( "C:\\Users\\Administrator\\Desktop\\b.txt" )); //查询,看文件是否存在,存在输出的true,如果不存在输出false System.out.println(myfile.exists()); //文件相关操作,除了文件以外,还有一个角色:文件夹 File myfile1= new File( "C:\\Users\\Administrator\\Desktop\\abc\\cde\\fka" ); //建立文件夹 ,mkdir和mkdirs,文件夹可能出现嵌套,mkdir如果嵌套建立不成功,mkdirs是建立嵌套的文件夹 myfile1.mkdirs(); //删除文件夹 // myfile1.delete(); //改,修改文件夹名字 myfile1.renameTo( new File( "C:\\Users\\Administrator\\Desktop\\abc\\cde\\1122" )); //查,还可以判断是文件还是文件夹. System.out.println(myfile.isFile()); System.out.println(myfile1.isDirectory()); } } |