//针对文件的操作
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){
}
}
}
File类
最新推荐文章于 2022-11-09 16:57:15 发布