`
lyunabc
  • 浏览: 551818 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

第十二章 java流与文件操作 第四讲

 
阅读更多

第十二章 java流与文件操作 第四讲

四、文件操作-----File类

(1)File类可以用一些方法来操作文件和获取文件的信息包括:更改文件名、删除文件、列出目录下的文件以及文件对象属性的描述信息等。

File的构造方法

public File(String pathname);

File f1 = new File(“data.txt”);

public File(String path,String name);

File f2 = new File(“c:\\aa”,”data.txt”);

public File(File parent,String chile);

File file4=new File(“c:/example”,”demo.txt”);

注:pathname指路径名字符串,path指父类路径名,String 是文件名

(2) 静态常量

由于不同操作系统的文件分隔符以及路径分隔符不同,因此,如果要获取当前系统的文件和路径的分隔符,可使用以下两个静态常量。

public static final char separatorChar;

public static final String separator;

实例:File file = new File("c:"+File.separator+"abc"+File.separator+"a.txt");

注:这两个常量可以在两种操作系统下进行,如实例所写的一样,为:c:\\abc\\a

(3) 访问文件常用的方法

(1)访问文件对象

File f = new File(“res\aa.txt”);

public String getName() ------结果为: aa.txt

//返回文件对象名,不包含路径名

public String getPath() -------- res\aa.txt

//File对象中封装的路径是什么,获取的就是什么

public String getAbsolutePath()

//返回绝对路径名,包含文件名---------- D:\java\java\res\aa.txt

public String getParent()

//返回父文件对象的路径名,如果封装的是相对路径,返回null -------res

public File getParentFile()

//返回父文件对象 ------------- D:\java\java\res

(2)获得文件属性

 public long length() //返回文件的字节长度

 public boolean exists() //测试指定的文件是否存在

 public long lastModified() //返回文件最后被修改的时间

(3)文件操作

 public boolean renameTo(Filedest) //文件重命名

 public boolean delete() //删除空目录或文件

(4)目录操作

 public boolean mkdir () //创建目录,正常建立时返回true

补充:在创建目录时,可以加上if语句来判断是否存在,如果不存在在创建

(1)单级目录的创建

File f3 = new File("c:\\aa");

if(!f3.exists()){

f3.mkdir();

}

(2)多级目录的创建

File f4 = new File("c:\\bb\\cc\\dd");

if(!f4.exists()){

f4.mkdirs();

}

 public String[] list() //返回目录中的所有文件名字符串

补充:

(1)显示当前文件夹里的所有东西------list() 只能显示文件名

String[] arr = f3.list();

for(String name:arr){

System.out.println(name);

}

(2)显示当前文件夹下的文件名和子文件夹-----listFiles()

File[] files = f3.listFiles();

for(int i=0;i<files.length;i++){ System.out.println(files[i].getName()+”/t”+files[i].lastModified()+”/t”+files[i].isFile()?”文件”:”目录”);}

(5) 利用子文件递归方法调用文件的子文件----使用递归时,一定要有递归的终止条件,并且调用次数也不要过多,否则会出现内存溢出.

第一种:

public void listDir(File dir){

//方法listDir()里的参数是File类的对象

System.out.println(dir.getName()+"以下是文件下的子文件:");

File[] files1 = dir.listFiles();

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

if(files1[i].isFile()){

System.out.println(files1[i].getName());

}else{

listDir(files1[i]);//递归的使用

}

}

第二种:

public void listDir1(File dir,int level){

System.out.println(getLevel(level)+dir.getName());

level++;

File[] files = dir.listFiles();

for(int x =0; x<files.length; x++){

if(files[x].isDirectory())//如果遍历到的是目录。

listDir1(files[x],level);//递归。

else

System.out.println(getLevel(level)+files[x].getName());

}

}

//增加目录层次

public String getLevel(int level){

StringBuilder sb = new StringBuilder();

注:是缓冲的字符串,和StringBuffered 一样

sb.append("|--");

for(int x=0; x<level; x++){

sb.insert(0,"| "); //插入---从第0个开始,

}

return sb.toString();

}

}

输出的结果大概为:

|--aa

| |--rr

(6) 过滤器的应用------FileFilter---是接口,所有要想实现必须实例化类,根据继承

public class MyFileFilter implements FileFilter{

String externName;//设置过滤条件----即是过滤那个文件结尾的文件

public MyFileFilter(String externName){

this.externName=externName;

}

//以上构造函数时为了让用户自己输入过滤条件,并调用

//显示验证的文件是否符合过滤条件

public boolean accept(File pathname){

if(pathname.isDirectory()){

return false;

}

//查找 . 并用条件判断

String filename = pathname.getName();

int n = filename.indexOf(".");

if(n==-1 || n==filename.length()-1){

return false;

}

//文件截取从.之后

if(filename.substring(n+1).equals(externName)){

return true;

}

return false;

}

(7)随机文件操作--------- RandomAccessFile

RandomAccessFile raf = new RandomAccessFile(“dome.txt”,”rw”);

raf.writeInt(1234); 向文件中写入

raf.seek(0); //定位到最开头

int n = raf.readInt(); 读取文件

分享到:
评论

相关推荐

    Java语言程序设计基础第十版第十二章课后复习题答案

    根据提供的信息,我们可以总结出以下关于《Java语言程序设计基础第十版》第十二章的一些关键知识点及解答: ### 一、异常处理基本概念 #### 12.1 **问题:** 异常处理的主要思想是什么? **解答:** 异常处理的主要...

    java第十三章Java 输入输出流.rar

    Java输入输出流(I/O流)是Java编程中不可或缺的一部分,它允许程序处理数据的读取和写入操作。在Java中,一切皆为对象,所以输入和输出操作也被抽象成了一系列的类,这些类构成了Java I/O系统的核心。本章主要涵盖...

    java面向对象程序设计课程每章ppt(共15章+复习1章).zip

    第14章 流与文件(1).pptx 第14章 流与文件(2).pptx 第15章 网络编程.pptx 第1章 Java概述.pptx 第2章 Java基础.pptx 第3章 数组.pptx 第4章 类和对象(1).pptx 第4章 类和对象(2).pptx 第5章 类的继承.pptx...

    Java第三十五——三十六讲总结-输入输出流.doc

    ### Java第三十五至三十六讲知识点总结:输入输出流 #### 一、输入输出流概述 在Java中,输入输出流是进行数据读写的重要工具。主要包括以下几类: 1. **字节流**:主要涉及`InputStream`(输入字节流)和`...

    Java文件操作源码大全

    Java文件操作是编程中常见的任务,...以上只是Java文件操作的一部分知识点,实际开发中还会涉及文件权限控制、并发访问、流操作等更多内容。了解并熟练掌握这些知识点,能帮助开发者高效、安全地处理各种文件操作需求。

    java开发实战经典第十二章课后习题答案

    《Java开发实战经典》是许多Java初学者的重要学习资料,其第十二章涵盖了诸多关键知识点。这章可能涉及了面向对象编程的深入理解、异常处理、集合框架的使用、多线程、网络编程或者IO流等内容。课后习题通常用于巩固...

    深入JAVA虚拟机第二版.pdf 目录

    第4章 网络移动性 第5章 Java虚拟机 第6章 Java class文件 第7章 类型的生命周期 第8章 连接模型 第9章 垃圾收集 第10章 栈和局部变量操作 第11章 类型转换 第12章 整数运算 第13章 逻辑运算 第14章 浮点运算 第15章...

    北大青鸟S1JAVA第十二章课后练习详解

    在北大青鸟S1JAVA课程的第十二章中,学员们会接触到一系列深入的Java编程概念和实践。这一章节的课后练习旨在巩固所学知识,提升编程技能。以下是本章涉及的一些关键知识点: 1. **面向对象编程基础**:在Java中,...

    第二章第十四节——文件操作控件

    在本章第十四节中,我们将深入探讨文件操作控件的概念、功能以及如何在不同编程环境中实现它们。 首先,了解文件操作控件的基本概念是必要的。文件操作控件是UI中的组件,通常表现为按钮、对话框、菜单项等形式,...

    java语言程序与数据结构梁勇第十版第七章复习题答案

    在“Java语言程序与数据结构梁勇第十版第七章复习题答案”中,我们主要探讨的是Java编程语言的基础知识,特别是与数据结构相关的概念。Java作为一种面向对象的编程语言,对于初学者来说,理解其基本语法、类和对象、...

    第12章输入输出流、文件及数据库操作.doc

    在Java编程中,输入输出流(Input/Output Stream)是数据传输的核心机制,用于处理程序与外部世界的交互,包括键盘、显示器、文件和网络等。本章主要关注的是输入输出流、文件操作以及数据库操作。 12.1 输入输出流...

    java课件1到12章

    12. **第十二章:Java Swing图形界面编程** - Swing组件库:JFrame、JButton、JLabel、JTextArea等 - 布局管理器:FlowLayout、BorderLayout、GridLayout、BoxLayout - AWT与Swing的区别 - Event监听机制 这些...

    Java Web开发实例大全

    第12章 jQuery框架 第13章 Dojo框架 第5篇 流行框架篇 第14章 Struts2框架应用 第15章 Struts2框架标签应用 第16章 Hibernate框架基础 第17章 Hibernate高级话题 第18章 Spring框架基础 第19章 Spring的Web MVC框架 ...

    深入Java虚拟机(原书第2版)及书中源代码

    第4章 网络移动性 第5章 Java虚拟机 第6章 Java class文件 第7章 类型的生命周期 第8章 连接模型 第9章 垃圾收集 第10章 栈和局部变量操作 第11章 类型转换 第12章 整数运算 第13章 逻辑运算 第14章 浮点运算 第15章...

    java对csv文件进行读写操作

    在Java中,处理CSV文件通常需要借助第三方库,如本示例中的`javacsv.jar`。`javacsv`是由Dave Taylor创建的一个小型库,专门用于读写CSV文件。下面我们将详细探讨如何使用Java和`javacsv`库对CSV文件进行读写操作。 ...

    Java语言程序设计张思民(第四版) 课后答案

    4. **输入输出(IO)流**:第八章讲解了Java的IO系统,包括文件操作、字节流和字符流的使用。习题解答将帮助读者熟练掌握读写文件、数据传输及流的组合使用。 5. **多线程**:第九章介绍了Java的并发编程,包括线程...

    javawe第十四章的练习代码

    4. **JSTL(JavaServer Pages Standard Tag Library)**:JSTL是一套标准的标签库,用于简化JSP页面的编程。在"chap14"中,可能会用到JSTL标签进行条件判断、循环、数据操作等。 5. **EL(Expression Language)**...

    Thinking in Java 第四版 第2章到第17章答案

    11. **第十二章:枚举与注解** - 枚举是限定类型的安全替代,注解则为编译器和JVM提供了元数据,用于代码的自解释和验证。 12. **第十三章:泛型** - 泛型引入了类型参数,增强了代码的类型安全性和重用性,同时也...

    Java语言程序设计与数据结构(基础篇)第17章课后习题代码chapter17.rar

    第17章的内容可能涉及了高级数据结构和算法,这对于进一步提升编程能力至关重要。在这个章节的课后习题中,学生通常会被要求实现各种数据结构的实例,比如队列、栈、树、图等,以及应用这些数据结构解决实际问题的...

Global site tag (gtag.js) - Google Analytics