zoukankan      html  css  js  c++  java
  • 11.4

    package qimoxiangmu;
    
    import javax.swing.*;
    
    import java.io.*;
    
    public class ChooseFile
    {
        public static void main(String[] args)
        {
        
          JFileChooser fileChooser = new JFileChooser();
    
          fileChooser.setFileSelectionMode(
             JFileChooser.FILES_ONLY );
             //显示打开文件对话框
          int result = fileChooser.showOpenDialog( null );
     
          // user clicked Cancel button on dialog
          if ( result == JFileChooser.CANCEL_OPTION )
             return;
    
          File fileName = fileChooser.getSelectedFile();
          
          System.out.println("您选择了:" + fileName.getName());
        }
    }

    运行结果如下:

    您选择了:9. 山花绽放.lnk

    package qimoxiangmu;
    
    import java.io.IOException;
    import java.nio.file.FileSystem;
    import java.nio.file.FileSystems;
    import java.nio.file.FileVisitResult;
    import java.nio.file.Files;
    import java.nio.file.LinkOption;
    import java.nio.file.Path;
    import java.nio.file.PathMatcher;
    import java.nio.file.Paths;
    import java.nio.file.SimpleFileVisitor;
    import java.nio.file.attribute.BasicFileAttributes;
    import java.util.ArrayList;
    
    
    public class FileFinder extends SimpleFileVisitor<Path> {
    
    
    
        @Override
        public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
                throws IOException {
            Path name=file.getFileName();
            System.out.println("Examining "+name);
            if(matcher.matches(name)){
                foundPaths.add(file);
            }
            return FileVisitResult.CONTINUE;
        }
    
        private PathMatcher matcher;
        
        public ArrayList<Path> foundPaths=new ArrayList<>();
        
        public FileFinder(String pattern){
            matcher=FileSystems.getDefault().getPathMatcher("glob:"+pattern);    
        }
        
        public static void main(String[] args) {
            Path fileDir=Paths.get("D:\test");
            FileFinder finder=new FileFinder("*.java");
            try {
                Files.walkFileTree(fileDir, finder);
                ArrayList<Path> foundFiles=finder.foundPaths;
                if(foundFiles.size()>0){
                    for (Path path : foundFiles) {
                    System.out.println(path.toRealPath(LinkOption.NOFOLLOW_LINKS));
                    }
                }
                else {
                    System.out.println("No files were found!");
                }
                
            } catch (IOException e) {
            
                e.printStackTrace();
            }
    
        }
    
    }

    运行结果如下:

    No files were found!

    package qimoxiangmu;
    import java.io.IOException;
    import java.nio.charset.Charset;
    import java.nio.file.Files;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    import java.nio.file.StandardCopyOption;
    import java.util.Arrays;
    import java.util.List;
    
    public class FilesTest {
        public static void main(String[] args) {
            // copy file
            Path source = Paths.get("D:/Temp/line1.bmp");
            Path target = Paths.get("D:/Temp/backup.bmp");
            try {
                Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING);
            } catch (IOException ex) {
                ex.printStackTrace();
            }
    
            Path source2 = Paths.get("D:/Temp/backup.bmp");
            Path target2 = Paths.get("D:/123data/backup2.bmp");
            try {
                Files.move(source2, target2, StandardCopyOption.REPLACE_EXISTING);
            } catch (IOException ex) {
                ex.printStackTrace();
            }
    
            
            // write and read to a text file
            Path textFile = Paths.get("D:/Temp/speech.txt");
            Charset charset = Charset.forName("US-ASCII");
            String line1 = "Easy read and write";
            String line2 = "with java.nio.file.Files";
            List<String> lines = Arrays.asList(line1, line2);
            try {
                Files.write(textFile, lines, charset);
            } catch (IOException ex) {
                ex.printStackTrace();
            }
            List<String> linesRead = null;
            try {
                // read back
                linesRead = Files.readAllLines(textFile, charset);
            } catch (IOException ex) {
                ex.printStackTrace();
            }
            
            if (linesRead != null) {
                for (String line : linesRead) {
                    System.out.println(line);
                }
                
            }
        }
        
    }

    运行结果如下:

    Easy read and write
    with java.nio.file.Files

    package qimoxiangmu;
    import java.io.*;
    import java.util.ArrayList;
    
    public class FileTest {
    
        public static void main(String[] args) throws IOException {
            
             File file = new File("c:\windows");
             if(file.isFile()) { // 是否为文件
                 System.out.println(" 文件"); 
                 System.out.print(
                       file.canRead() ? "可读" : "不可读"); 
                 System.out.print(
                       file.canWrite() ? "可写" : "不可写"); 
                 System.out.println(
                       file.length() + "字节"); 
             } 
             else { 
                 // 列出所有的文件及目录
                 File[] files = file.listFiles(); 
                 ArrayList<File> fileList = 
                                     new ArrayList<File>(); 
                 for(int i = 0; i < files.length; i++) { 
                     // 先列出目录 
                     if(files[i].isDirectory()) { //是否为目录
                         // 取得路径名
                         System.out.println("[" + 
                                 files[i].getPath() + "]"); 
                     }
                     else {
                         // 文件先存入fileList,待会再列出??
                         fileList.add(files[i]); 
                     }
                 } 
    
                 // 列出文件 
                 for(File f: fileList) {
                     System.out.println(f.toString());
                 }
                 System.out.println(); 
             } 
            
            
            //以当前路径来创建一个File对象
            file = new File(".");
            //直接获取文件名,输出一点
            System.out.println(file.getName());
            //获取相对路径的父路径可能出错,下面代码输出null
            System.out.println(file.getParent());
            //获取绝对路径
            System.out.println(file.getAbsoluteFile());
            //获取上一级路径
            System.out.println(file.getAbsoluteFile().getParent());
            //在当前路径下创建一个临时文件
            File tmpFile = File.createTempFile("aaa", ".txt", file);
            //指定当JVM退出时删除该文件
            tmpFile.deleteOnExit();
            //以系统当前时间作为新文件名来创建新文件
            File newFile = new File(System.currentTimeMillis() + "");
            System.out.println("newFile对象是否存在:" + newFile.exists());
            //以指定newFile对象来创建一个文件
            newFile.createNewFile();
            //以newFile对象来创建一个目录,因为newFile已经存在,
            //所以下面方法返回false,即无法创建该目录
            newFile.mkdir();
            //使用list方法来列出当前路径下的所有文件和路径
            String[] fileList = file.list();
            System.out.println("======当前路径下所有文件和路径如下=====");
            for (String fileName : fileList) {
                System.out.println(fileName);
            }
    
            //listRoots静态方法列出所有的磁盘根路径。
            File[] roots = File.listRoots();
            System.out.println("======系统所有根路径如下=====");
            for (File root : roots) {
                System.out.println(root);
            }
        }
    }

    运行结果如下:

    [c:windowsaddins]
    [c:windowsappcompat]
    [c:windowsapppatch]
    [c:windowsAppReadiness]
    [c:windowsassembly]
    [c:windowscastdvr]
    [c:windowsBoot]
    [c:windowsBranding]
    [c:windowsCbsTemp]
    [c:windowsContainers]
    [c:windowsCursors]
    [c:windowsdebug]
    [c:windowsDefender]
    [c:windowsdiagnostics]
    [c:windowsDiagTrack]
    [c:windowsDigitalLocker]
    [c:windowsDownloaded Program Files]
    [c:windowsELAMBKUP]
    [c:windowsen-US]
    [c:windowsFavicon_ICON]
    [c:windowsFonts]
    [c:windowsGameBarPresenceWriter]
    [c:windowsGlobalization]
    [c:windowsHelp]
    [c:windowsIdentityCRL]
    [c:windowsIME]
    [c:windowsImmersiveControlPanel]
    [c:windowsINF]
    [c:windowsInputMethod]
    [c:windowsInstaller]
    [c:windowsjava]
    [c:windowsL2Schemas]
    [c:windowsLanguageOverlayCache]
    [c:windowsLenovo]
    [c:windowsLiveKernelReports]
    [c:windowsLogs]
    [c:windowsMedia]
    [c:windowsMicrosoft.NET]
    [c:windowsMigration]
    [c:windowsminidump]
    [c:windowsModemLogs]
    [c:windowsNetease]
    [c:windowsOCR]
    [c:windowsOffline Web Pages]
    [c:windowspanther]
    [c:windowsPCHEALTH]
    [c:windowsPerformance]
    [c:windowsPLA]
    [c:windowsPolicyDefinitions]
    [c:windowsPrefetch]
    [c:windowsPrintDialog]
    [c:windowsProvisioning]
    [c:windowsRegistration]
    [c:windows escache]
    [c:windowsResources]
    [c:windowsSchCache]
    [c:windowsschemas]
    [c:windowssecurity]
    [c:windowsServiceProfiles]
    [c:windowsServiceState]
    [c:windowsservicing]
    [c:windowsSetup]
    [c:windowsShellComponents]
    [c:windowsShellExperiences]
    [c:windowsSKB]
    [c:windowsSoftwareDistribution]
    [c:windowsSpeech]
    [c:windowsSpeech_OneCore]
    [c:windowssymbols]
    [c:windowsSystem]
    [c:windowsSystem32]
    [c:windowsSystemApps]
    [c:windowsSystemResources]
    [c:windowsSysWOW64]
    [c:windowsTAPI]
    [c:windowsTasks]
    [c:windowsTemp]
    [c:windowsTextInput]
    [c:windows racing]
    [c:windows wain_32]
    [c:windowsVss]
    [c:windowsWaaS]
    [c:windowsWeb]
    [c:windowsWinSxS]
    [c:windowszh-CN]
    c:windowsacct.txt
    c:windowsarea.txt
    c:windowsauthsel.txt
    c:windowsAvsOpt.txt
    c:windowsa_domain.txt
    c:windowsfsvc.exe
    c:windowsootstat.dat
    c:windowsCNI.TAG
    c:windowscore.ver
    c:windowsCoreCountrySpecific.xml
    c:windowscsup.txt
    c:windowsdiagerr.xml
    c:windowsdiagwrn.xml
    c:windowsDirectX.log
    c:windowseap.txt
    c:windowseapkeep.txt
    c:windowsedu_look.bmp
    c:windowsexplorer.exe
    c:windowsguest.txt
    c:windowsHelpPane.exe
    c:windowshh.exe
    c:windowsinfo.txt
    c:windowslanguage.txt
    c:windowsmachineinfo.sav
    c:windowsMFGSTAT.zip
    c:windowsmib.bin
    c:windowsmsginfosize.txt
    c:windows otepad.exe
    c:windowsNvContainerRecovery.bat
    c:windowsNvTelemetryContainerRecovery.bat
    c:windowsODBC.INI
    c:windowsPFRO.log
    c:windowsPLDDATA.XML
    c:windowsProductInfo.ini
    c:windows egedit.exe
    c:windowssetupact.log
    c:windowssetuperr.log
    c:windowssplwow64.exe
    c:windowssystem.ini
    c:windows wain_32.dll
    c:windowsvbaddin.ini
    c:windowswin.ini
    c:windowsWindowsShell.Manifest
    c:windowsWindowsUpdate.log
    c:windowswinhlp32.exe
    c:windowsWMSysPr9.prx
    c:windowswrite.exe

    .
    null
    D:JAVA新建文件夹qimoxiangmu.
    D:JAVA新建文件夹qimoxiangmu
    newFile对象是否存在:false
    ======当前路径下所有文件和路径如下=====
    .classpath
    .project
    .settings
    1608220060270
    aaa5574514488376449911.txt
    bin
    src
    ======系统所有根路径如下=====
    C:
    D:
    F:

    package qimoxiangmu;
    import java.io.IOException;
    import java.nio.file.FileSystem;
    import java.nio.file.FileSystems;
    import java.nio.file.FileVisitResult;
    import java.nio.file.Files;
    import java.nio.file.Path;
    import java.nio.file.PathMatcher;
    import java.nio.file.Paths;
    import java.nio.file.SimpleFileVisitor;
    import java.nio.file.attribute.BasicFileAttributes;
    
    
    public class FileVisitorDemo extends SimpleFileVisitor<Path> {
    
        
        @Override
        public FileVisitResult postVisitDirectory(Path dir, IOException exc)
                throws IOException {
            System.out.println("Just visited "+dir);
            return FileVisitResult.CONTINUE;
        }
    
        @Override
        public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs)
                throws IOException {
            System.out.println("Aoout to visit "+dir);
            return FileVisitResult.CONTINUE;
        }
    
        @Override
        public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
                throws IOException {
            if(attrs.isRegularFile()){
                System.out.println("Regular File:");
            }
            System.out.println(file);
            return FileVisitResult.CONTINUE;
        }
    
        @Override
        public FileVisitResult visitFileFailed(Path file, IOException exc)
                throws IOException {
            System.err.println(exc.getMessage());
            return FileVisitResult.CONTINUE;
        }
    
        public static void main(String[] args) {
            Path fileDirPath=Paths.get("D:\test");
            FileVisitorDemo visitor=new FileVisitorDemo();
            try {
                Files.walkFileTree(fileDirPath, visitor);
            } catch (IOException e) {
                
                e.printStackTrace();
            }
            
            
            
        }
    
    }

    运行结果如下:

    D: est

    package qimoxiangmu;
    import java.nio.file.FileSystems;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    import java.nio.file.StandardWatchEventKinds;
    import java.nio.file.WatchEvent;
    import java.nio.file.WatchKey;
    import java.nio.file.WatchService;
    import java.util.HashMap;
    import java.util.Map;
    
    
    public class FileWatcherDemo {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            //创建一个WatchService对象,此对象将用于管理特定文件夹的变动信息队列。
            try(WatchService service=FileSystems.getDefault().newWatchService()) {
                //此集合可保存多个文件夹的监控信息,当前只使用了一个
                Map<WatchKey, Path> keyMap=new HashMap<>();
                Path path=Paths.get("D:\test");
                //设置WatchService对象管理的内部队列,将保存指定的文件夹的创建、删除和修改事件信息
                //返回的WatchKey对象可用于从事件队列中获取事件对象
                WatchKey key=path.register(service, StandardWatchEventKinds.ENTRY_CREATE,
                        StandardWatchEventKinds.ENTRY_DELETE,StandardWatchEventKinds.ENTRY_MODIFY);
                keyMap.put(key, path);
                
                do {
                    //开始监控,阻塞等待,当感兴趣的事件发生时,take()方法返回。
                    key=service.take();
                    Path eventDir=keyMap.get(key);
                    //从事件队列中提取所有的事件
                    for (WatchEvent<?> event : key.pollEvents()) {
                        //是什么类型的事件?
                        WatchEvent.Kind<?> kind=event.kind();
                        //是哪个对象发生了变动?
                        Path eventPath=(Path)event.context();
                        System.out.println(eventDir+":"+kind+":"+eventPath);
                    }
                } while (key.reset()); //reset方法重置此对象,让其可以重新接收信息
                
            } catch (Exception e) {
                
            }
    
        }
    
    }
    package qimoxiangmu;
    import java.io.IOException;
    import java.nio.file.FileSystem;
    import java.nio.file.FileSystems;
    import java.nio.file.Files;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    
    public class PathTest {
        public static void main(String[] args) {
            FileSystem fileSystem=FileSystems.getDefault();
            Path examplePath=fileSystem.getPath("c:/windows");
            System.out.println(examplePath.toString());
            Path path = Paths.get("D:/Temp/pathTest.txt");
            System.out.println("path name count:" + path.getNameCount());
            System.out.println(path.getName(0));
            System.out.println(path.getName(1));
            
            System.out.println("filename: " + path.getFileName());
            System.out.println("parent: " + path.getParent());
            Path parent = path.getParent();
            System.out.println("parent: " + parent.getParent().getParent());
            
            
            try {
                Files.deleteIfExists(path);
                Files.createFile(path);
            } catch (IOException ex) {
                ex.printStackTrace();
            }
            
            Path newDir = Paths.get("D:/Temp/newDir");
            try {
                if (Files.notExists(path)) {
                    Files.createDirectory(newDir);
                    
                }
                System.out.println("isDirectory: " + Files.isDirectory(newDir));
                System.out.println("size  : " + Files.size(newDir));
            } catch (IOException ex) {
                ex.printStackTrace();
            }
            System.out.println("DONE");
            
        }
        
    }

    运行结果如下:

    c:windows
    path name count:2
    Temp
    pathTest.txt
    filename: pathTest.txt
    parent: D:Temp
    parent: null
    isDirectory: true
    size  : 0
    DONE

  • 相关阅读:
    Java 垃圾回收机制
    Android 图片旋转(使用Matrix.setRotate方法)
    antd design vue 设置 v-decorator 的初始值
    校验 url 是否以http 或者https 开头
    有效的括号
    堆排序
    归并排序
    插入排序
    选择排序
    冒泡排序
  • 原文地址:https://www.cnblogs.com/cdl-sunshine/p/14152417.html
Copyright © 2011-2022 走看看