一、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. 互联网业务安全之通用安全风险模型
  2. 下载股票代码的历史数据并打包成csv
  3. 第十三届“华中杯”大学生数学建模挑战赛题目 B 题 技术问答社区重复问题识别
  4. decode的mysql用法_MySQL DECODE( )用法及代码示例
  5. 教师节特辑丨网易云信:素质教育「名师」是如何炼成的?
  6. 第七期 | 90天带学《机器学习》西瓜书+带打天池和达观杯AI大赛
  7. Android之解决Base64 encode中文乱码问题
  8. myeclipse窗口布局控件任意_木辛老师的编程课堂:Python和Qt第2讲之布局管理初探(三)...
  9. java的传值调用什么_Java的传值调用
  10. Python实现单向循环链表
  11. Oracle发布Java移动开发路线图 影响近千万开发者
  12. sql累计求和时间太长_(七)SQL知识点--窗口函数
  13. markdown引入代码_第 09 篇:让博客支持 Markdown 语法和代码高亮
  14. 腾讯人均月薪8万!第一季度财报发布:微信月活数恐怖,游戏平均日赚4亿
  15. 马云:用 10% 大脑创造出来的机器不可能毁灭人类
  16. PTA : 函数题 7-3 两个有序链表序列的交集 (20 分)
  17. 2017-2018-1 20155222 《信息安全系统设计基础》课上实验2、3
  18. 立体井字棋NOIP17提高模拟训练5
  19. 说说 SpringMVC 工作原理
  20. 给初学者推荐一个【免费的PHP教学视频】

热门文章

  1. 组策略管理——软件限制策略(5)
  2. 用命令行非交互改密码
  3. FastDFS 集群配置(转载)
  4. Python_divmod() 函数简单说明
  5. 浅析C# new和override的区别
  6. verilog中如何拆分一个数
  7. C++11中值得关注的几大变化 .
  8. Android开发出现Warning:Gradle version 2.10 is required. Current version is 2.8
  9. 应用程序进程(三):创建消息循环
  10. ARM汇编学习之寄存器 之PC