Java初级黄金体验 其二
初级 Java IO : 第一个纪念碑
小程序大致功能
让我们看一下E盘有多少个文件
上代码
最近太多的作业
代码可以无限改进,君子回头十年不晚,先写软工去
package com.lxy.io;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
/**
创建目录
@author lxy
*
E:\aa\ff
*/
public class IOt2 {
//定义static属性
static String check_fuc;
static String op_name;
//定义输入函数
public static String shuru() {
Scanner scanner = new Scanner(System.in);
String key = scanner.nextLine();
return key;
}
``
public static void main(String[] args) throws IOException { //基础输出 System.out.println("*按Q/q进行一次操作||按其他键退出"); String ss1 = shuru(); while(ss1.equals("Q") || ss1.equals("q")) { //功能 System.out.println(" -----------------------------------------"); System.out.println("|创建新文件/文件夹--->1|删除文件/文件夹--->2|"); System.out.println(" -----------------------------------------"); System.out.println("|查找文件/文件夹----->3|打开文件/文件夹--->4|"); System.out.println(" -----------------------------------------"); check_fuc = shuru(); switch(check_fuc) { case "1" :{ System.out.println(" ---------------------------------"); System.out.println("|创建新文件---->1|创建新文件夹---->2|"); System.out.println(" ---------------------------------"); String check_creat = shuru(); switch(check_creat) { case "1": { System.out.println("*请输入所要创建的名称:"); op_name = shuru(); Fifo ff = new Fifo(op_name); ff.creatIt(); break; } case "2" :{ System.out.println("*请输入所要创建的名称:"); op_name = shuru(); Directory dr_tmp = new Directory(op_name); dr_tmp.creatIt(); break; } } break; } case "2" :{ System.out.println("*请输入所要删除的名称:"); op_name = shuru(); int tmp = checkName(op_name); if(tmp == 3) { System.out.println("文件不存在"); }else if(tmp == 2) { Fifo ff_tmp = new Fifo(op_name); ff_tmp.deleteIt(); }else { Directory dr_tmp = new Directory(op_name); dr_tmp.deleteIt(); } break; } case "3" :{ System.out.println("*请输入所要查找的名称:"); op_name = shuru(); File ff = new File(op_name); if(ff.exists()) { System.out.println(ff.getName()+"存在!"); System.out.println("其位置在:"+ff.getAbsolutePath()); } break; } case "4" :{ System.out.println("*请输入要打开的文件名称"); op_name = shuru(); int tmp = checkName(op_name); if(tmp == 3) { System.out.println("文件不存在"); }else if(tmp == 2) { System.out.println(" ---------------------------------"); System.out.println("|查看内容---->1|增添/修改内容---->2|"); System.out.println(" ---------------------------------"); String cont = shuru(); switch(cont) { case "1" :{ viewFifo(op_name); break; } case "2" :{ System.out.println(" ----------------------------"); System.out.println("|增添内容---->1|修改内容---->2|"); System.out.println(" ----------------------------"); String mdf = shuru(); switch(mdf) { case "1" :{ appendFifo(op_name); break; } case "2": { modifyFifo(op_name); break; } } break; }
``
} }else { printDirBasicMsg(op_name); } break; } } //基础输出 System.out.println("按Q/q进行一次操作||按其他键退出"); ss1 = shuru(); } System.out.println("你已退出!");
``
} //封装文件夹查看功能函数 public static void printDirBasicMsg(String s) { Directory Dr = new Directory(s); System.out.println("该文件夹基本信息如下:"); System.out.println("*大小:"+Dr.getDirLength()+"字节"); System.out.println("*子文件夹数量:"+Dr.getDirChilddirNum()+"个"); System.out.println("*子文件数量:"+Dr.getDirChildfileNum()+"个"); System.out.println("*其子文件名称如下"); Dr.printContent(Dr.fd, 0); } //封装文件查看函数及其修改内容的功能 public static void viewFifo(String s) throws FileNotFoundException { Fifo fo = new Fifo(s); fo.printContent(); } //增加内容 public static void appendFifo(String s){ Fifo fo = new Fifo(s); fo.appendIt(); } //修改内容 public static void modifyFifo(String s){ Fifo fo = new Fifo(s); fo.modifyIt(); } //检查为文件夹/文件函数 public static int checkName(String s) { int flag; File f_check = new File(s); if(f_check.isDirectory()) { flag = 1; } else if(f_check.isFile()) { flag = 2; }else { flag = 3; } return flag; }
`}` `//文件夹类` `class Directory{` `//` `private String path;` `//文件夹长度` `private int dirLength;` `//所有子文件夹的数量` `private int dirChilddirNum;` `//所有子文件的数量` `private int dirChildfileNum;` `public File fd;` `//` `public Directory(String s) {` `this.path = s;` `this.fd = new File(path);` `this.dirLength = 0;` `this.dirChilddirNum = 0;` `this.dirChildfileNum = 0;` `this.openFuc(fd);` `}`
//文件夹的大小以及子文件/文件夹的数量 private void openFuc(File fd) { if(fd != null && fd.exists()) { if(fd.isFile()) { this.dirChildfileNum++; dirLength += fd.length(); }else if(fd.isDirectory()) { this.dirChilddirNum++; if(fd.listFiles() != null) for(File f1:fd.listFiles()) openFuc(f1); } } } //列出所有子文件夹和子文件 public void printContent(File f,int deep) { for(int i = 0; i < deep; ++i) { System.out.print("-"); } System.out.println(f.getName()); if(f == null||!f.exists()) { return ; }else if(f.isDirectory()) { if(f.listFiles() != null) for(File f1:f.listFiles()) { printContent(f1,deep+1); } } } //创建文件夹 public void creatIt() { if(fd.mkdirs()) { System.out.println("*创建文件夹成功!"); }else if(fd.exists()) { System.out.println("*文件夹已存在请勿重复创建!"); }else { System.out.println("*创建失败!"); } } //删除文件夹 public void deleteIt() { if(fd.delete()) { System.out.println("*文件夹"+fd.getName()+"已删除!"); }else { System.out.println("*删除失败!"); } }
public int getDirLength() { return dirLength; } public int getDirChilddirNum() { return dirChilddirNum; } public int getDirChildfileNum() { return dirChildfileNum; }
`}` `class Fifo{` `private String path;` `File fdd;` `FileReader fread;` `FileWriter fwriter;` `//构造器` `Fifo(String s){` `this.path = s;` `fdd = new File(path);` `}`
//查看文件内容 public void printContent() throws FileNotFoundException { System.out.println("*文件已打开,内容如下"); fread = new FileReader(fdd); char[] a = new char[100]; try { fread.read(a); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } for(char tmp : a) { System.out.print(tmp); } try { fread.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("-------------------------"); } //增添文件内容 public void appendIt() { Scanner scanner_tmp = new Scanner(System.in); System.out.println("*请在下方输入你要添加的内容"); String tmp = scanner_tmp.nextLine(); try { fwriter = new FileWriter(this.fdd,true); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { fwriter.write(tmp); fwriter.flush(); fwriter.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("*文件内容添加成功"); } //修改文件内容 public void modifyIt() { Scanner scanner_tmp = new Scanner(System.in); System.out.println("*请在下方输入你要修改的内容"); String tmp = scanner_tmp.nextLine(); try { fwriter = new FileWriter(this.fdd,false); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { fwriter.write(tmp); fwriter.flush(); fwriter.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("*文件内容修改成功"); } //创建文件 public void creatIt() throws IOException { if(fdd.createNewFile()) { System.out.println("*创建新文件成功!"); }else if(fdd.exists()){ System.out.println("*文件"+fdd.getName()+"已存在!"); }else { System.out.println("*创建新文件失败!"); } } //删除文件 public void deleteIt() { if(fdd.delete()) { System.out.println("*文件"+fdd.getName()+"已删除!"); }else { System.out.println("*删除失败!"); } }
}