一、File类

文件的创建

package file;import java.io.File;
import java.io.IOException;public class CreateFile {public static void main(String[] args) {// TODO 自动生成的方法存根File file=new File("C:\\Users\\Public\\Desktop\\demo.txt"); try{file.createNewFile();  }catch(IOException e){e.printStackTrace();}}
}

文件的删除

package file;import java.io.File;public class DeleteFile {public static void main(String[] args) {// TODO 自动生成的方法存根File file = new File("C:\\Users\\Public\\Desktop\\demo.txt");file.delete();}
}

文件的查找

package file;import java.io.File;public class ExistFile {public static void main(String[] args) {// TODO 自动生成的方法存根File file = new File("C:\\Users\\Public\\Desktop\\demo.txt");if(file.exists()){System.out.println("文件存在!");}else{System.out.println("文件不存在!");}}
}

路径的判断

package file;import java.io.File;public class JudgeFile {public static void main(String[] args) {// TODO 自动生成的方法存根File file1=new File("C:\\Users\\Public\\Desktop\\demo.txt");File file2=new File("C:\\Users\\Public\\Desktop");System.out.println(file1.isFile());System.out.println(file2.isDirectory());}
}

目录输出

直接文件输出

package file;import java.io.File;public class FilePath {public static void main(String[] args) {// TODO 自动生成的方法存根File file=new File("C:\\Users\\Public\\Desktop");String path[]=file.list();int len=path.length;for(int i=0;i<len;i++){System.out.println(path[i]);}}
}

路径输出

package file;import java.io.File;public class FilePath {public static void main(String[] args) {// TODO 自动生成的方法存根File file=new File("C:\\Users\\Public\\Desktop");File[] path=file.listFiles();//--------------------这里发生了改变,以File对象为数组元素int len=path.length;for(int i=0;i<len;i++){System.out.println(path[i]);}}
}

建立文件夹

package file;import java.io.File;

public class CreateDirect {public static void main(String[] args) {// TODO 自动生成的方法存根File file=new File("C:\\Users\\Public\\Desktop\\demo"); file.mkdir();//创建demo文件夹}}}

在建立一个文件的同时在文件夹内建立文件

package file;import java.io.File;
import java.io.IOException;public class CreateDirect {public static void main(String[] args) {// TODO 自动生成的方法存根File file=new File("C:\\Users\\Public\\Desktop\\javatest\\demo.txt"); file.getParentFile().mkdir();//创建d\\javatest文件夹try {file.createNewFile();} catch (IOException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}}

注意:因为linux与windows的文件层次分隔符分别为/和\,所以为了实现代码的跨平台,本文中的\\皆可改为File.separator.

问题:列出某个目录下的全部文件(包括子目录中的子文件)

import java.io.File;public class ListDirectoryDemo {public static void main(String[] args) {File file = new File("d:" + File.separator);list(file);}public static void list(File file) {if (file.isDirectory()) {File lists[] = file.listFiles();if (lists != null) {for (int i = 0; i < lists.length; i++) {list(lists[i]);// 列出内容}}}System.out.println(file);}
}

二、RandomAccessFile

构造方法:public RandomAccessFile(File file,String mode)throws FileNotFoundException

写操作:

import java.io.File;
import java.io.RandomAccessFile;public class RandomWrite {public static void main(String[] args) throws Exception {// 所有异常抛出File file = new File("C:\\Users\\Public\\Desktop\\demo.txt");// 指定要操作的文件RandomAccessFile raf = new RandomAccessFile(file, "rw");// 以读写的形式进行操作// 写入第一条数据String name = "zhangsan";// 表示姓名int age = 20; // 表示年龄raf.writeBytes(name); // 以字节的方式将字符串写入raf.writeInt(age); // 写入整型数据// 写入第二条数据name = "lisi    ";// 表示姓名age = 19; // 表示年龄raf.writeBytes(name); // 以字节的方式将字符串写入raf.writeInt(age); // 写入整型数据// 写入第三条数据name = "wangwu  ";// 表示姓名age = 21; // 表示年龄raf.writeBytes(name); // 以字节的方式将字符串写入raf.writeInt(age); // 写入整型数据raf.close();// 文件操作的最后一定要关闭}}

读操作:

import java.io.File;
import java.io.RandomAccessFile;public class RandomRead {public static void main(String[] args) throws Exception {// 所有异常抛出File file = new File("C:\\Users\\Public\\Desktop\\demo.txt");// 指定要操作的文件RandomAccessFile raf = new RandomAccessFile(file, "r");// 以读的形式进行操作byte b[] = null;// 定义字节数组String name = null;int age = 0;b = new byte[8];raf.skipBytes(12); // 跨过第一个人的信息System.out.println("第二个人的信息:");for (int i = 0; i < 8; i++) {b[i] = raf.readByte(); // 读取字节}age = raf.readInt();// 读取数字System.out.println("\t|- 姓名:" + new String(b));System.out.println("\t|- 年龄:" + age);raf.seek(0);// 回到开始位置System.out.println("第一个人的信息:");for (int i = 0; i < 8; i++) {b[i] = raf.readByte(); // 读取字节}age = raf.readInt();// 读取数字System.out.println("\t|- 姓名:" + new String(b));System.out.println("\t|- 年龄:" + age);raf.skipBytes(12); // 跨过第二个人的信息System.out.println("第三个人的信息:");for (int i = 0; i < 8; i++) {b[i] = raf.readByte(); // 读取字节}age = raf.readInt();// 读取数字System.out.println("\t|- 姓名:" + new String(b));System.out.println("\t|- 年龄:" + age);raf.close();// 文件操作的最后一定要关闭}
}

转载于:https://www.cnblogs.com/walkthehorizon/p/4388133.html

java学习之文件基本操作相关推荐

  1. Java学习之文件操作

    前言 因为文件操作是一个非常常见的操作,在加上用法非常固定,就写一篇博客整理一下 我直接用一个小项目说明文件操作的方法,当然主要还是去看官方的api文档是最好的 我的一个demo程序是监听一个目录下的 ...

  2. Java学习总结:41(文件操作类:File)

    Java文件操作类:File 在java.io包中,如果要进行文件自身的操作(例如:创建.删除等),只能依靠java.io.File类完成. File类的常用操作方法 No. 方法 类型 描述 1 p ...

  3. java学习笔记16--I/O流和文件

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理 ...

  4. Java基础学习总结(15)——java读取properties文件总结

    2019独角兽企业重金招聘Python工程师标准>>> 一.java读取properties文件总结 在java项目中,操作properties文件是经常要做的,因为很多的配置信息都 ...

  5. java zip文件操作,java 关于 zip 文件 的 基本操作

    这里用的是appache的包  为了防止文件中文名乱码问题 java 操作 .zip 文件  压缩文件 解压文件 删除文件夹等 package com.gaeainfo.toponymbase.uti ...

  6. java操作properties文件简单学习

    java操作properties文件的工具类简单封装: 注意:由于本地和环境和linux服务的路径有区别,或者jetty,resin,tomcat部署后,文件的路径也是有区别的.比如我们在linux上 ...

  7. Java学习总结:42(字节流和字符流)

    字节流与字符流 上一节我们学习了文件操作类File,但是File类虽然可以操作文件,但是却不能操作文件的内容.如果要进行文件内容的操作,就必须依靠流的概念来完成.流在实际中分为输入流和输出流两种,输入 ...

  8. java路线_2021年Java学习路线图—精心整理

    看到过无数套毫无用处的Java路线图,到现在为止还在云端飘着,对于Java小白来说就像天书一般,Java大神看了以后感觉云山雾绕不知道讲什么东西,于是我从实战出发,呕心沥血整理出来Java学习路线图希 ...

  9. java学习之路目录(已完结)

    java学习之路目录(持续更新中-) 第一阶段 javaSE(完结) 序号 标题 内容 001 java初识 java语言特点.体系结构.运行机制 002 java SE基础语法 注释.关键字.变量. ...

最新文章

  1. android屏幕分辨率详解 ldpi mdpi hdpi 程序UI自适应 《官方翻译》
  2. 如何快速融入团队(二)
  3. 协作工具 discord 和 slack
  4. mysql主从字符集不一致_MySQL多字节字符集造成主从数据不一致问题
  5. 用户通过WEB方式更改AD域帐户密码
  6. [Android] Android开发优化之——对界面UI的优化(2)
  7. python 鼠标键盘操作 pyautogui
  8. 【Go语言】【4】GO语言类型和为类型增加方法
  9. Entity Framework Core 使用HiLo生成主键
  10. 高可用性的HDFS—Hadoop分布式文件系统深度实践
  11. jAvA中deprecate,在Java中使用Deprecated方法或类是错误的吗?
  12. 计算机应用培训课程安排表,计算机培训教学计划
  13. Java基础学习总结(158)——开发Leader如何做CodeReview
  14. Linux性能监控工具
  15. Go语言中Tcp协议粘包问题处理
  16. 深入浅出Symfony2 - 结合MongoDB开发LBS应用
  17. UML用例图怎么画 有手就会
  18. 连接多个内网的方法,想连多少个连多少个
  19. 视频教程-Photoshop(PS)软件基础入门-Photoshop
  20. 奇虎360起诉瑞星和中关村在线

热门文章

  1. 告诉我们您对 Office 2010 的看法
  2. ASP.NET MVC Bundles 用法和说明(打包javascript和css)
  3. JavaScript 对象中this的指向问题
  4. 初入angular4——实际项目搭建总结
  5. hihocoder #1333 : 平衡树·Splay2
  6. 批量修改在索引中增加字段
  7. 线程里面添加参数,并解决多个参数问题[原创]
  8. Linux的IPC机制(二):Socket/管道/消息队伍/信号量
  9. DiskLruCache 源码解析
  10. gradle多工程打包冲突问题