• 06-Java 本地文件操作


    1、File类简介

      创建好:File file=new File("hello.txt"); 后,按住Ctrl键、单击File。会出现File的源代码。

    在视图左下角双击“outline”大纲最大化后会出现文件所具有的方法,带有绿色的点,表明方法是公开的,即public 。

     public static void main(String[] args) {
            // TODO Auto-generated method stub
            File file=new File("hello.txt");
            if (file.exists()) {
                System.out.println(file.isFile());//文件可以是文件
                System.out.println(file.isDirectory());//也可以是文件夹(路径)
            }else {
                System.out.println("文件不存在");  //结果是不存在的!

    2、文件的创建、删除、重命名。

    (1)创建和删除: 

    public static void main(String[] args) {
            // TODO Auto-generated method stub
            File file=new File("hello.txt");
            if (file.exists()) {
                
    //            System.out.println(file.isFile());//文件可以是文件
    //            System.out.println(file.isDirectory());//也可以是文件夹(路径)
            file.delete();//文件删除
                System.out.println("文件删除成功");
            }else {
                System.out.println("文件不存在");
                try {
                    file.createNewFile();
                    System.out.println("文件已经成功创建");
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    System.out.println("文件无法创建");

    (2)重命名:(注意:文件夹结构必须处于同一个分区,文件处于不同的分区,需要使用的是文件的拷贝而不是重命名)

    public static void main(String[] args) {
            // TODO Auto-generated method stub
            File file=new File("hello.txt");
            if (file.exists()) {
                File nameto=new File("new hello.txt");//重命名
                file.renameTo(nameto);
    //            System.out.println(file.isFile());//文件可以是文件
    //            System.out.println(file.isDirectory());//也可以是文件夹(路径)
            //file.delete();//文件删除
                //System.out.println("文件删除成功");
            }else {
                System.out.println("文件不存在");
                try {
                    file.createNewFile();
                    System.out.println("文件已经成功创建");
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    System.out.println("文件无法创建");
                }

    3、文件夹的创建、删除、重命名。

    1

    public static void main(String[] args) {
            File folder =new File("my new folder");//文件夹的创建
            if (folder.mkdirs()) {
                System.out.println("文件夹创建完成");
            }else {
                if (folder.exists()) {
                    System.out.println("文件夹已经存在不用创建");
                }else {
                    System.out.println("文件夹创建失败");

    2、

    File folder =new File("my new folder");
            File newfolder=new File("my new folder-new");//重命名
            if (folder.renameTo(newfolder)) {
                System.out.println("重命名成功");
            }else {
                System.out.println("重命名失败");

    3、

    File folder =new File("my new folder");
            if (folder.delete()) {//删除(只能删空文件夹啊!)
                System.out.println("delete suceeded");
            }else {
                System.out.println("delete failed");

    4、文件属性的读取

    (1)创建一个文件:在右击工程、new、选untitled text file 、输入内容后、另存为(选中所属工程名)、重命名~

    public class ReadFileProperty {
    
        public static void main(String[] args) {
            File file=new File("text.txt");
    //        判断文件是否存在
            System.out.println("判断文件是否存在"+file.exists());
    //        读取文件名称
            System.out.println("读取文件名称"+file.getName());
    //        读取文件(相对)路径
            System.out.println("读取文件路径"+file.getPath());
    //        读取文件绝对路径
            System.out.println("读取文件绝对路径"+file.getAbsolutePath());
    //        获取文件父级路径
            System.out.println("获取文件父级路径"+new File(file.getAbsolutePath()).getParent());
    //        读取文件大小
            System.out.println("读取文件大小"+file.length()+"byte");
            System.out.println("读取文件大小"+(float)file.length()/1000+"KB");
    //        判断文件是否被隐藏
            System.out.println("判断文件是否被隐藏"+file.isHidden());
    //        判断文件是否可读
            System.out.println("判断文件是否可读"+file.canRead());
    //        判断文件是否可写
            System.out.println("判断文件是否可写"+file.canWrite());
    //        判断文件是否为文件夹
            System.out.println("判断文件是否为文件夹"+file.isDirectory());

    结果:

    判断文件是否存在true

    读取文件名称text.txt

    读取文件路径text.txt

    读取文件绝对路径C:Documents and SettingsOwner.LENOVO-F94A111EworkspaceReadFileProperty ext.txt

    获取文件父级路径C:Documents and SettingsOwner.LENOVO-F94A111EworkspaceReadFileProperty

    读取文件大小14byte

    读取文件大小0.014KB

    判断文件是否被隐藏false

    判断文件是否可读true

    判断文件是否可写true(如果将文件设置为只读的话 ,那么就是false !)

    判断文件是否为文件夹false

    1、  文件属性的设置

    File file=new File("test.file");   //也是要手动新建一个文件的!
            if (file.exists()) {
            //将文件设定为可写(前提需要先将它设置为不可写!)
            file.setWritable(true);//or false
            //将文件设定为可读
            file.setReadable(true);
            //将文件设定为只读(运行一下语句时需要将上面两个语句注释掉~)
            file.setReadOnly();}

    2、  遍历文件夹:

    public static void main(String[] args) {
            // TODO Auto-generated method stub
            printFiles(new File("../FileScanner"),1);
        }
        public static void printFiles(File dir,int tab) {//tab为使层次更清楚
            if (dir.isDirectory()) {
                File next[]=dir.listFiles();
                for (int i = 0; i < next.length; i++) {
                    for (int j = 0; j < tab; j++) {
                        System.out.print("|---");//去掉ln。
                    }
                    System.out.println(next[i].getName());
                    if (next[i].isDirectory()) {
                        printFiles(next[i],tab+1);

    结果:

    |---.classpath

    |---.project

    |---.settings

    |---|---org.eclipse.jdt.core.prefs

    |---bin

    |---|---com

    |---|---|---jikexueyuan

    |---|---|---|---filescan

    |---|---|---|---|---main

    |---|---|---|---|---|---Scanner.class

    |---src

    |---|---com

    |---|---|---jikexueyuan

    |---|---|---|---filescan

    |---|---|---|---|---main

    |---|---|---|---|---|---Scanner.java

    3、  文件的简单读写:

    (1)读::

       

    public static void main(String[] args) {
            // TODO Auto-generated method stub
            File file=new File("text.txt");
            if (file.exists()) {
                System.err.println("exist");
                try {
                    FileInputStream fis =new FileInputStream(file);
                    InputStreamReader isr=new InputStreamReader(fis, "UTF-8");
                    BufferedReader br=new BufferedReader(isr);
                    
                    String line;
                    while ((line=br.readLine())!=null) {
                        System.out.println(line);
                    }
                    br.close();
                    isr.close();
                    fis.close();//先打开的后关闭,后打开的先关闭
                } catch (FileNotFoundException e){
                    e.printStackTrace();
                }catch ( UnsupportedEncodingException e) {
                    e.printStackTrace();
                }catch (IOException e) {
                    e.printStackTrace();

    (2)写:

      

        File newfile =new File("newtext.txt");
            FileOutputStream fos =new FileOutputStream(newfile);
            OutputStreamWriter osw =new OutputStreamWriter(fos,"UTF-8");
            BufferedWriter bw=new BufferedWriter(osw);
            try {
                bw.write("长歌行  汉乐府
    ");
                bw.write("青青园中葵,朝露待日晞。
    ");
                bw.write("阳春布德泽,万物生光辉。
    ");
                bw.write("常恐秋节至,焜黄华叶衰。
    ");
                bw.write("百川东到海,何时复西归?
    ");
                bw.write("少壮不努力,老大徒伤悲。
    ");
                
                bw.close();
                osw.close();
                fos.close();
                
                System.out.println("写入完成");
            } catch (FileNotFoundException e){
                e.printStackTrace();
            }catch ( UnsupportedEncodingException e) {
                e.printStackTrace();
            }catch (IOException e) {
                e.printStackTrace();
  • 相关阅读:
    Django models通过DateTimeField保存到MySQL的时间的时区问题
    apache静态文件配置
    Python多线程学习
    Django filter中用contains 在mysql中的问题
    python:open/文件操作
    C++primer plus第六版课后编程题答案
    C++primer plus第六版课后编程题答案8.3
    C++primer plus第六版课后编程题答案8.2
    C++primer plus第六版课后编程题答案8.1
    C++primer plus第六版课后编程题答案7.10
  • 原文地址:https://www.cnblogs.com/shenxiaolin/p/6017577.html
Copyright © 2020-2023  润新知