File类
2016-05-14 20:30
423 查看
//针对文件的操作 import java.io.File; import java.io.IOException; public class Test{ public static void main(String []args){ //1.通过一个文件类对象f和一个文件a.txt产生关系 //就可以通过操作文件类的对象f来去影响文件a.txt了 //方法一: //String path="e:/a.txt"; //File f=new File(path); //方法2 File f=new File("e:/a.txt"); //2.判断文件是否存在 boolean iden=f.exists(); if(iden){ System.out.println("a.txt文件存在"); }else{ System.out.println("a.txt文件不存在"); } //3.通过程序创建文件 try{ boolean iden1=f.createNewFile(); if(iden1){ System.out.println("a.txt创建成功"); }else{ System.out.println("a.txt创建失败"); } }catch(IOException ex){ System.out.println("出现的异常为:"+ex.getMessage()); ex.printStackTrace(); } //4.测试文件的只读属性(有两个方法) boolean iden2=f.canWrite(); if(iden2){ System.out.println("文件a.txt存在且允许写入"); }else{ System.out.println("文件a.txt是只读状态,不允许写入"); } boolean iden3=f.canRead(); if(iden3){ System.out.println("文件a.txt可读"); }else{ System.out.println("文件a.txt不可读"); } //4.测试文件的隐藏属性 boolean iden4=f.isHidden(); if(iden4){ System.out.println("a.txt文件被隐藏了"); }else{ System.out.println("a.txt文件没有被隐藏"); } //5.测试文件的大小属性所用的方法 long size=f.length(); System.out.println("a.txt文件的大小为"+size+"个字节"); //6.获取文件的名字 String name=f.getName(); System.out.println("文件的名字"+name); //7.获取路径名和文件名 String path=f.getPath(); System.out.println("路径的名字为"+path); //8.获取文件最后一次被修改的时间 long times=f.lastModified(); System.out.println("a.txt最后一次被修改的时间为:"+times); //9.获取文件的上一级目录的名字 String parent=f.getParent(); System.out.println(parent); //10.输出一个文件 boolean iden5=f.delete(); if(iden5){ System.out.println("a.txt文件删除成功"); }else{ System.out.println("a.txt文件删除失败"); } } } //针对文件夹的操作 import java.io.File; import java.io.IOException; public class Test1{ public static void main(String []args){ //java中用File类即代表文件,有代表文件夹 //如何判定f是一个文件还是一个文件夹呢? File f=new File("e:/suitanglian"); //1.判断是否是一个文件 boolean isfile=f.isFile(); if(isfile){ System.out.println("这是一个文件"); }else{ System.out.println("这是一个文件夹"); } //2.判断是否是一个文件夹 boolean isdiresctory=f.isDirectory(); if(isdiresctory){ System.out.println("这是一个文件夹"); }else{ System.out.println("这是一个文件"); } //3.判断此文件夹中有多少个文件 File []arr=f.listFiles(); int len=arr.length; System.out.println("共有"+len+"个文件"); //输出数组里面的内容:叫做循环遍历数组 //方法1: for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); } //方法2: for(int i=0;i<len;i++){ //把数组里面的内容赋值给File类型的对象 File file=arr[i]; String name=file.getName(); System.out.println("文件名字为:"+name); int index=name.indexOf("."); String diff=name.substring(index+1); System.out.println("文件名字为:"+name+",后缀为:"+diff); } } } public class Test2{ public static void main(String []args){ String name="long.txt"; //获取字符串中一个字符的下标,返回值类型为int形 int index=name.indexOf("."); System.out.println("字符.的下标为:"+index); //截取字符串,从下标为index+1处开始到字符串结束 String str=name.substring(index+1); System.out.println("截取的字符串为:"+str); } } 程序4 import java.io.File; public class Test3{ public static void main(String []args){ //获取磁盘根目录存放到数组中 File []arr=File.listRoots(); //获取数组的大小 int len=arr.length; System.out.println("电脑中磁盘的长度为:"+len); //输出数组中的具体内容:即循环遍历数组 for(int i=0;i<arr.length;i++){ //方法一:直接输出 System.out.println("电脑中的磁盘根目录有:"+arr[i]); //用File类创建的对象调用相关方法输出 File f=arr[i]; //程序证明:磁盘根目录的遍历没有名字只有路径 String name=f.getName(); System.out.println("电脑中磁盘根目录的名字为:"+name); String path=f.getPath(); System.out.println("电脑中磁盘的路径名称为:"+path); //判断磁盘是文件还是文件夹 boolean len1=f.isDirectory(); if(len1){ System.out.println("这是一个文件夹"); //磁盘是文件夹时里面有多少个文件呢 File [] file=f.listFiles(); //获取磁盘里面所有文件的大小 int size=file.length; System.out.println("该磁盘中一共有"+size+"文件"); }else{ System.out.println("这是一个文件"); } } } } 程序5:黑客帝国,遍历c盘中的所有文件,打印输出所有文件夹名,文件夹路径,文件名,文件路径 import java.io.File; //遍历c盘当中的所有文件 public class Test4{ public static void main(String []args){ //使文件File类创建对象与磁盘根目录建立联系 File f=new File("c:/"); //用类名调用静态的show方法 Test4.show(f); } //创建一个带File类型参数的show方法 public static void show(File f){ //1.判断c盘中的内容文件夹还是文件,是文件夹是递归调用自己直到是文件为止 boolean iden=f.isDirectory(); if(iden){//是一个文件夹 //2.若是文件夹则获取文件夹的名称和路径名称并输出 String name=f.getName(); String path=f.getPath(); System.out.println("文件夹的路径名称为:"+path+" 文件夹的名称为:"+name); //3.查找c盘文件夹中有多少个文件,数组中用来存放的是文件夹 File []arr=f.listFiles(); if(arr!=null){ //获取C盘文件夹中文件夹的大小 int len=arr.length; //循环遍历C盘文件夹中的内容 for(int i=0;i<len;i++){ //把数组里面的内容(文件夹或文件)赋给File类建立的对象 File file=arr[i]; //递归调用自己(因为文件夹是可以嵌套的即文件夹中还有文件夹) show(file); } } }else{//是一个文件 String path=f.getPath(); String name=f.getName(); System.out.println("文件的路径"+path+"文件的名字"+name); } } } 程序:给定一个文件夹,查找文件夹中的所有java文件,并统计java文件的个数 方法一: //遍历指定文件夹中的所有java文件,我遍历的是g:/suitanglian文件夹下的java文件 import java.io.File; import javax.swing.JOptionPane; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class Test5{ public static int sum; public static void main(String []args){ String path=JOptionPane.showInputDialog(null,"请输入您要查找的文件夹路径"); File f=new File(path); Test5.show(f); System.out.println("一共有"+sum+"个java文件"); } public static void show(File f){ boolean iden=f.isDirectory(); if(iden){ //获取用户输入的文件夹中有多少文件 File []arr=f.listFiles(); if(arr!=null){ for(int i=0;i<arr.length;i++){ File file=arr[i]; show(file); } } }else{//是文件,找java文件 String path=f.getPath(); String name=f.getName(); int index=name.indexOf("."); //截取的字符串 String diff=name.substring(index+1); if(diff.equals("java")){ sum++; System.out.println("java文件名:"+name+"路径名"+path); } } } } 方法二: import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.io.File; import java.io.IOException; public class Test51{ public static int count=0; public static void main(String []args){ JFrame jf=new JFrame(); jf.setTitle("统计文件窗体"); jf.setSize(500,300); jf.setLayout(null); jf.setLocationRelativeTo(null); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel labtitle=new JLabel("统计文件"); labtitle.setBounds(200,30,100,20); jf.add(labtitle); JLabel lab=new JLabel("请输入指定文件夹的抽象路径名:"); lab.setBounds(10,70,200,30); jf.add(lab); JTextField txt=new JTextField(); txt.setBounds(230,70,170,30); jf.add(txt); JButton btn=new JButton("显示文件"); btn.setBounds(100,120,100,30); jf.add(btn); //添加监听事件 btn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ String path=txt.getText(); File f=new File(path); Test51.show(f); } }); JButton btncount=new JButton("统计个数"); btncount.setBounds(230,120,100,30); jf.add(btncount); jf.setVisible(true); btncount.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ System.out.println("一共有"+count+"个java文件"); } }); } public static void show(File ff){ boolean iden=ff.isFile(); if(iden){//是文件 String path=ff.getPath(); String name=ff.getName(); //获取某一个字符的下标 int index=name.indexOf("."); //截取字符串 String diff=name.substring(index+1); if(diff.equals("java")){ count++; System.out.println("文件名:"+name+"路径名:"+diff); } }else{//是文件夹 File []arr=ff.listFiles(); if(arr!=null){ for(int i=0;i<arr.length;i++){ File file=arr[i]; show(file); } } } } } 程序要求:遍历自己电脑中所有磁盘中的MP4文件(或txt文件),并统计他们的数量 //遍历电脑所有磁盘的MP4文件 import java.io.File; public class Test6{ public static int sum=0; public static void main(String []args){ File []pan=File.listRoots(); int len=pan.length; for(int i=0;i<len;i++){ File f=pan[i]; String path=f.getPath(); //打印输出电脑中的所有磁盘 System.out.println(path); Test6.show(f); } System.out.println("该电脑中一共有"+sum+"个mp4文件"); } public static void show(File ff){ boolean iden=ff.isDirectory(); if(iden){ File []arr=ff.listFiles(); if(arr!=null){ for(int i=0;i<arr.length;i++){ File file=arr[i]; show(file); } } }else{ String name=ff.getName(); String path=ff.getPath(); int index=name.indexOf("."); //截取字符串,从下标index+1开始直到结束 String str=name.substring(index+1); if(str.equals("mp4")){ sum++; System.out.println("文件名:"+name+"文件路径名:"+path); } } } } 程序:用GUI+AWT+IO文件输出流,在文本中输入文字保存到指定磁盘e:/a.txt import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextArea; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class Test1{ public static void main(String []args){ JFrame jf=new JFrame(); jf.setTitle("记事文本"); jf.setLayout(null); jf.setLocationRelativeTo(null); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setSize(500,400); JLabel lab=new JLabel("请你在下面文本框中输入内容:"); lab.setBounds(10,10,200,20); jf.add(lab); JTextArea txt=new JTextArea(); txt.setBounds(20,40,300,300); txt.requestFocus(); txt.setLineWrap(true); //激活自动换行功能 txt.setWrapStyleWord(true); jf.add(txt); JButton btn=new JButton("保存"); btn.setBounds(350,70,70,30); jf.add(btn); btn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ try{ File f=new File("e:/a.txt"); if(!f.exists()){ f.createNewFile(); } FileOutputStream out=new FileOutputStream(f); String wenben=txt.getText(); byte []bs=wenben.getBytes(); out.write(bs); out.close(); }catch(IOException ex){ System.out.println("异常信息"+ex.getMessage()); ex.printStackTrace(); } } }); jf.setVisible(true); } } 程序:文件输入流:程序读文件到控制台 import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Scanner; public class Test2{ public static void main(String []args){ Scanner sca=new Scanner(System.in); System.out.println("请输入您要读取文件的路径:"); String path=sca.next(); try{ File f=new File(path); FileInputStream in=new FileInputStream(f); int size=in.available(); byte []arr=new byte[size]; in.read(arr); String str=new String(arr); System.out.println(str); in.close(); }catch(IOException ex){ System.out.println(""); } } } //从一个磁盘复制文件粘贴到另一个磁盘 import java.io.File; import java.io.FileOutputStream; import java.io.FileInputStream; import java.io.IOException; import java.util.Scanner; public class Test3{ public static void main(String []args){ try{ Scanner sca=new Scanner(System.in); System.out.println("请输入你要复制的路径:"); String path1=sca.next(); File f1=new File(path1); System.out.println("请输入你要粘贴的路径:"); String path2=sca.next(); File f2=new File(path2); FileInputStream in=new FileInputStream(f1); int size=in.available(); byte []arr=new byte[size]; in.read(arr); FileOutputStream out=new FileOutputStream(f2); out.write(arr); in.close(); out.close(); }catch(IOException ex){ } } } //从一个磁盘复制一个文件,剪切到另一个磁盘 import java.io.File; import java.io.FileOutputStream; import java.io.FileInputStream; import java.io.IOException; import java.util.Scanner; public class Test4{ public static void main(String []args){ try{ Scanner sca=new Scanner(System.in); System.out.println("请输入你要复制的路径:"); String path1=sca.next(); File f1=new File(path1); System.out.println("请输入你要粘贴的路径:"); String path2=sca.next(); File f2=new File(path2); FileInputStream in=new FileInputStream(f1); int size=in.available(); byte []arr=new byte[size]; in.read(arr); FileOutputStream out=new FileOutputStream(f2); out.write(arr); in.close();//必须先关闭流文件在删除流文件 boolean iden=f1.delete(); if(iden){ System.out.println("删除成功"); }else{ System.out.println("删除失败"); } out.close(); }catch(IOException ex){ } } }
相关文章推荐
- JS学习笔记
- iOS 并行编程:NSOperation Queues
- 1094. The Largest Generation (25)【二叉树】——PAT (Advanced Level) Practise
- 【caffe配置】在vs2013用已经训练好的Alexnet网络提取fc6特征
- iOS开发 - 第02篇 - UI进阶 - 03 - TableView Cell
- Ubuntu下IntelliJ IDEA新建Java Web项目
- Android并发编程之白话文详解Future,FutureTask和Callable
- [置顶] 字符串的反转
- HYSBZ 1036 树的统计Count 树链剖分
- Git与Repo入门
- 第十周项目5——摩托车继承自行车和机动车
- SSH网上答题系统质量属性
- 1093. Count PAT's (25)【计数】——PAT (Advanced Level) Practise
- 说反话
- QT-如何添加资源文件
- 一个屌丝程序猿的人生(八)
- Android并发编程之图文解析volatile关键字
- C++_FatMouse' Trade(贪心)
- mysql5.7下的timestampn Error : Invalid default value for 'timestamp'
- 如何用java实现使用电子邮件控制你的电脑