最近项目中要用到File这个类,温故而知新,回过头来回顾下这个File类,File类主要是对磁盘目录,文件进行操作的Api,具体其实查JDK api 的File全能获取到。

下面写一些文件目录的基本操作练习一下:

1. 列出文件目录和文件,文件随机访问

package com.dcz.io;

import java.io.File;
import java.io.RandomAccessFile; public class RandomAccessFileDemo { public static void main(String[] args) throws Exception { File dir = new File("E:\\迅雷下载"); if(!dir.exists()){
throw new IllegalAccessException("给定的目录不存在!");
} if(!dir.isDirectory()){
throw new IllegalAccessException("给定的不是一个目录");
} File[] files = dir.listFiles();
for(File f : files){
if(f.isDirectory()){
FileUtil.listDirectory(f);
}else{
System.out.println(f);
}
} // -------------------------------------------------------------- // 创建目录
File fileDir = new File("file");
if(!fileDir.exists()){
fileDir.mkdir();
}
// 创建文件
File file = new File(fileDir, "abc.txt");
if(!file.exists()){
file.createNewFile();
} RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw"); // 读取文件指针【文件指针为:0】
System.out.println("文件指针位置:" + randomAccessFile.getFilePointer()); // 写字符(从API中可以查看到可以写很多类型的数据)
randomAccessFile.write('a'); // 读取文件指【文件指针为:1】
System.out.println("文件指针位置:" + randomAccessFile.getFilePointer()); // 写数字
randomAccessFile.writeInt(12); // 读取文件指【文件指针为:5】
System.out.println("文件指针位置:" + randomAccessFile.getFilePointer()); // 写中文
String str = "成长";
byte[] strArray = str.getBytes("GBK");
randomAccessFile.write(strArray);
// 读取文件指【文件指针为:9】
System.out.println("文件指针位置:" + randomAccessFile.getFilePointer()); // 文件指针归零
randomAccessFile.seek(0); // 创建缓冲
byte[] buffer = new byte[(int)randomAccessFile.length()];
// 读取文件内容
randomAccessFile.read(buffer); String fileContent = new String(buffer, "gbk"); // 打印文件内容
System.out.println("文件内容是:" + fileContent); // 关闭
randomAccessFile.close();
} }

Java File 常用操作回顾的更多相关文章

  1. java file 常用操作

    File file = new File("D:\\javaClass\\image"); // 测试此抽象路径名表示的文件或目录是否存在. // 当且仅当此抽象路径名表示的文件或 ...

  2. Java Map常用操作

    Java之map常用操作 package basic; import java.util.HashMap; import java.util.Map; /** *Map常用操作方法 */ public ...

  3. Java 线程常用操作

    继Java线程生命周期继续学习Java线程其他常用操作 线程的常用操作 设置线程名字:setName() 获取线程名称:getName() 线程唯一Id:getId() // 自定义线程名称 Stri ...

  4. Java IO基础--File常用操作(递归)

    File中经常会使用递归方法打印属性结构.统计文件夹下文件个数.子文件夹个数以及文件大小,可以作为递归的应用练习. 递归的写法,百度一搜一大堆,这里我使用对javabean方式封装了一下: packa ...

  5. HDFS Java API 常用操作

    package com.luogankun.hadoop.hdfs.api; import java.io.BufferedInputStream; import java.io.File; impo ...

  6. JAVA File常用的API介绍

    package coreJava; import java.io.File; import java.io.IOException; public class FileDemo { public st ...

  7. Java File文件操作 创建文件\目录,删除文件\目录

    Java手册 java.io 类 File java.lang.Object java.io.File 所有已实现的接口: Serializable, Comparable<File> p ...

  8. java File文件操作共用方法整理

    package org.jelly.util; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io ...

  9. java集合常用操作

    收集一些常用集合操作的代码,用于治疗健忘症,:) set转list //构造Map数据 Map<String, String> map = new HashMap<String, S ...

随机推荐

  1. 怎样用命令行编译C#程序

    1. 把程序拷贝至记事本 2.另存为*cs格式 3.找到VS2015提供的命令提示 4.要把命令行指向程序所在的目录(可以有个小软件) 如果在其他的盘符,先敲D:,然后再cd 5.输入csc hell ...

  2. Java递归算法——三角数字

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i ...

  3. javascript字符串截取的substring、substr和slice

    本文详细的介绍了javascript中substring().substr()和slice()三个JS字符串截取的方法,substring()方法用于提取字符串中介于两个指定下标之间的字符.subst ...

  4. 使用docker exec 就可以进入container,例如:docker exec -it <container_id> /bin/bash

    使用docker exec 就可以进入container,例如:docker exec -it <container_id> /bin/bash

  5. centos 7.0 安装vim

    用的最小化 安装 看看跟VI命令有何区别 后面会记录使用经验 [root@localhost conf]# yum -y install vim 已加载插件:fastestmirror base | ...

  6. [转]12款最佳Linux命令行终端工具

    摘要 “工欲善其事必先利其器”,作为菜鸟,也是从别人那里偷学来的一些东东.今天看到同事用到一个终端命令行工具,觉得自己弱爆了.然后在网上搜了下该工具.发现类似的工具还是挺多的,只是自己不知道罢了. 原 ...

  7. linux下vim更改注释颜色

    我linux下默认底色是黑色,字体是绿色,但是注释默认是蓝色,,很不爽...所以要更改注释颜色......以下文章来自转载. from: http://blog.csdn.net/gz109/arti ...

  8. js 判断鼠标滚轮方向

    最近因为公司项目的要求,需要做页面的全屏滚动切换效果. 页面的切换,需要脚本监听鼠标滑轮的滚动事件,来判断页面是向上切换or向下切换. 这里的脚本很简单,我就直接贴出来吧. $('html').on( ...

  9. 免费的ER 设计软件调研

    目标: 找到一个免费的ER 设计软件, 适合数据仓库项目开发. 结果: 经初步调研, Oracle的 SQL Developer Data Modeler基本满足需求. 但在功能和操作性等方面, 较P ...

  10. .NET逻辑分层架构总结

    一.基础知识准备: 1.层的原则: (1)每一层以接口方式供上层调用. (2)上层只能调用下层. (3)依赖分为松散交互和严格交互两种. 2.业务逻辑分类: (1)应用逻辑. (2)领域逻辑. 3.采 ...