易学笔记--从0开始学JAVA(个人纯手工笔记共享 免费!免费!免费!)--比直接看书快N倍的速度掌握知识点--第18章 Java IO系统

第18章 Java IO系统 /18.1 File类/18.1.1 目录列表器

标签:作者:易学笔记  更多资料请联系微信或QQ:1776565180

 

  • File类
  1. 概念:既可以代表特定文件的名称,又能代表一个目录下的一组文件的名称
  2. 举例:查找一个目录列表
    1. 可以使用不带参数的list( )方法,这样返回全部列表
    2. 带参照,比如扩展名为.java的文件
    3. 源代码:

      package io;

      //: io/DirList.java

      //Display a directory listing using regular expressions.

      //{Args: "D.*\.java"}

      import java.util.regex.*;

      import java.io.*;

      import java.util.*;

      public class DirList {

           public static void main(String[] args) {

                 // . 指的是文件所在的根目录

                 File path = new File(".");

                 String[] list;

                 if (args.length == 0)

                      //列出所有的文件和目录

                      list = path.list();

                 else

                 {

                      //System.out.println("xxxx:" + args[0]);

                      //DirFilter指的是的文件或者目录,args[0] 为过滤正则表达式,如只需要含有“s”的文件名:.*[s].*

                      list = path.list(new DirFilter(args[0]));

                 }

                 Arrays.sort(list, String.CASE_INSENSITIVE_ORDER);

                 for (String dirItem : list)

                      System.out.println(dirItem);

                 

                 System.out.println("字符串分割");

                 String pattern = ".*[s].*";

                 String strTeString = new String(".settings .myeclipse bin OK1 src .classpath .project s");

                 String[] arlist = strTeString.split(" ");

                 for (int i = 0; i < arlist.length; i++) {

                      System.out.println(arlist[i] + "=" + arlist[i].matches(pattern));

                 }

                 

           }

      }

      class DirFilter implements FilenameFilter {

           private Pattern pattern;

           public DirFilter(String regex) {

                 pattern = Pattern.compile(regex);

           }

           public boolean accept(File dir, String name) {

                 return pattern.matcher(name).matches();

           }

      /*

       * Output: DirectoryDemo.java DirList.java DirList2.java DirList3.java

       */// :~

    4. 结果输出:

      .classpath

      .myeclipse

      .settings

      src

      字符串分割

      .settings=true

      .myeclipse=true

      bin=false

      OK1=false

      src=true

      .classpath=true

      .project=false

      s=true

  3. 正则表达式过滤目录
    1. 源代码:

      package io;

      //: io/DirectoryDemo.java

      //Sample use of Directory utilities.

      import java.io.*;

      import mypackage.*;

      import static mypackage.Print.*;

      public class DirectoryDemo {

           public static void main(String[] args) {

                 // All directories:

                 //只打印目录

                 //PPrint.pprint(Directory.walk(".").dirs);

                 // All files beginning with 'T'

                 //只打印以“T”开头的文件

                 print("只打印以“T”开头的文件----------------------");

                 for (File file : Directory.local(".""T.*"))

                      print(file + "");

                 // All Java files beginning with 'T':

                 //只打印以“T”开头,以“java”结尾的文件

                 print("只打印以“T”开头,以“java”结尾的文件----------------------");

                 for (File file : Directory.walk(".""T.*.java"))

                      print(file+ "");

                 print("======================");

                 // Class files containing "Z" or "z":

                 print("只打印含有“z”或者“Z”的,以“class”结尾的文件----------------------");

                 for (File file : Directory.walk("."".*[Zz].*\\.class"))

                      print(file+ "");

           }

      /*

       * Output: (Sample) [.\xfiles] .\TestEOF.class .\TestEOF.java .\TransferTo.class

       * .\TransferTo.java ---------------------- .\TestEOF.java .\TransferTo.java

       * .\xfiles\ThawAlien.java ====================== .\FreezeAlien.class

       * .\GZIPcompress.class .\ZipCompress.class

       */// :~

    2. 结果输出:

      只打印以“T”开头的文件----------------------

      只打印以“T”开头,以“java”结尾的文件----------------------

      .\src\arrays\TestGenerated.java

      .\src\arrays\ThreeDWithNew.java

      .\src\exceptions\TurnOffChecking.java

      .\src\generics\TupleList.java

      .\src\generics\TupleTest.java

      .\src\generics\TupleTest2.java

      .\src\innerclasses\TestParcel.java

      .\src\mypackage\shape\Triangle.java

      .\src\mypackage\TextFile.java

      .\src\mypackage\ThreeTuple.java

      .\src\mypackage\Tuple.java

      .\src\mypackage\TwoTuple.java

      .\src\mypackage\TypeCounter.java

      .\src\strings\TestRegularExpression.java

      .\src\strings\TheReplacements.java

      .\src\strings\ThreatAnalyzer.java

      .\src\strings\Turtle.java

      .\src\typeinfo\toys\ToyTest.java

      ======================

      只打印含有“z”或者“Z”的,以“class”结尾的文件----------------------

      .\bin\arrays\ParameterizedArrayType.class

      .\bin\exceptions\Sneeze.class

      .\bin\strings\ReplacingStringTokenizer.class

      .\bin\strings\ThreatAnalyzer.class

      .\bin\typeinfo\ClassInitialization.class


第18章 Java IO系统 /18.1 File类/18.1.2 目录实用工具

标签:作者:易学笔记  更多资料请联系微信或QQ:1776565180

 

  • 目录实用工具
  1. 产生文件集合,包括目录下的子目录和文件
  2. 源代码
    1. 源代码1:

      package mypackage;

      import java.util.*;

      public class PPrint {

           public static String pformat(Collection<?> c) {

                 if (c.size() == 0)

                      return "[]";

                 StringBuilder result = new StringBuilder("[");

                 for (Object elem : c) {

                      if (c.size() != 1)

                           result.append("\n  ");

                      result.append(elem);

                 }

                 if (c.size() != 1)

                      result.append("\n");

                 result.append("]");

                 return result.toString();

           }

           public static void pprint(Collection<?> c) {

                 System.out.println(pformat(c));

           }

           public static void pprint(Object[] c) {

                 System.out.println(pformat(Arrays.asList(c)));

           }

      // /:~

    2. 源代码2:

      package mypackage;

      //: net/mindview/util/Directory.java

      //Produce a sequence of File objects that match a

      //regular expression in either a local directory,

      //or by walking a directory tree.

      import java.util.regex.*;

      import java.io.*;

      import java.util.*;

      public final class Directory {

           public static File[] local(File dir, final String regex) {

                 return dir.listFiles(new FilenameFilter() {

                      private Pattern pattern = Pattern.compile(regex);

                      public boolean accept(File dir, String name) {

                           return pattern.matcher(new File(name).getName()).matches();

                      }

                 });

           }

           public static File[] local(String path, final String regex) { // Overloaded

                 return local(new File(path), regex);

           }

           // A two-tuple for returning a pair of objects:

           public static class TreeInfo implements Iterable<File> {

                 public List<File> files = new ArrayList<File>();

                 public List<File> dirs = new ArrayList<File>();

                 // The default iterable element is the file list:

                 public Iterator<File> iterator() {

                      return files.iterator();

                 }

                 void addAll(TreeInfo other) {

                      files.addAll(other.files);

                      dirs.addAll(other.dirs);

                 }

                 public String toString() {

                      return "dirs: " + PPrint.pformat(dirs) + "\n\nfiles: "

                                 + PPrint.pformat(files);

                 }

           }

           public static TreeInfo walk(String start, String regex) { // Begin recursion

                 return recurseDirs(new File(start), regex);

           }

           public static TreeInfo walk(File start, String regex) { // Overloaded

                 return recurseDirs(start, regex);

           }

           public static TreeInfo walk(File start) { // Everything

                 return recurseDirs(start, ".*");

           }

           public static TreeInfo walk(String start) {

                 return recurseDirs(new File(start), ".*");

           }

           static TreeInfo recurseDirs(File startDir, String regex) {

                 TreeInfo result = new TreeInfo();

                 for (File item : startDir.listFiles()) {

                      if (item.isDirectory()) {

                           result.dirs.add(item);

                           result.addAll(recurseDirs(item, regex));

                      } else // Regular file

                      if (item.getName().matches(regex))

                           result.files.add(item);

                 }

                 return result;

           }

           // Simple validation test:

           public static void main(String[] args) {

             //args 参数为路径,如:D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage

                 if (args.length == 0)

                      System.out.println(walk("."));

                 else

                      for (String arg : args)

                           System.out.println(walk(arg));

           }

      // /:~

  3. 结果输出:

    dirs: [

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\music

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\shape

    ]

    files: [

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\BasicGenerator.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\CollectionData.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\ContainerMethodDifferences.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\ConvertTo.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\CountingGenerator.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\Directory.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\FiveTuple.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\FourTuple.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\Generator.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\GeneratorsTest.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\MapData.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\music\Instrument.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\music\Music.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\music\Note.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\music\Wind.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\New.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\Null.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\Pair.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\PPrint.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\Print.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\RandomGenerator.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\Reverse.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\Sets.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\shape\Circle.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\shape\RandomShape.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\shape\Shape.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\shape\Shapes.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\shape\Square.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\shape\Triangle.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\Stack.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\StackTest.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\TextFile.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\ThreeTuple.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\Tuple.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\TwoTuple.java

      D:\myeclipse_projects_workspace\thinkinginjava\src\mypackage\TypeCounter.java

    ]


 

》》》》》未完:易学笔记--从0开始学JAVA(个人纯手工笔记共享 免费!免费!免费!)--比直接看书快N倍的速度掌握知识点--总共19章》》》》》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
牙科就诊管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线查看数据。管理员管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等功能。牙科就诊管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 管理员在后台主要管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等。 牙医列表页面,此页面提供给管理员的功能有:查看牙医、新增牙医、修改牙医、删除牙医等。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员速删除。药品管理页面,此页面提供给管理员的功能有:新增药品,修改药品,删除药品。药品类型管理页面,此页面提供给管理员的功能有:新增药品类型,修改药品类型,删除药品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易学笔记(qq:1776565180)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值