一、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();// 文件操作的最后一定要关闭
}
}

java学习之文件基本操作的更多相关文章

  1. Java学习-022-Properties 文件数据写入

    Properties 配置文件写入主要通过 Properties.setProperty 和 Properties.store 两个方法,此文以一个简单的 properties 文件写入源码做示例. ...

  2. Java学习-019-Properties 文件读取实例源代码

    在这几天的学习过程中,有开发的朋友告知我,每个编程语言基本都有相应的配置文件支持类,像 Python 编程语言中支持的 ini 文件及其对应的配置文件读取类 ConfigParse,通过这个类,用户可 ...

  3. Java学习-018-EXCEL 文件写入实例源代码

    众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 S ...

  4. Java学习-017-EXCEL 文件读取实例源代码

    众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 S ...

  5. Java学习-016-CSV 文件读取实例源代码

    上文(CSV文件写入)讲述了日常自动化测试过程中将测试数据写入 CSV 文件的源码,此文主要讲述如何从 CSV 文件获取测试过程中所需的参数化数据.敬请各位小主参阅,若有不足之处,敬请大神指正,不胜感 ...

  6. Java学习-015-CSV 文件写入实例源代码

    在日常的自动化测试脚本编写的过程中,有时要将获取的测试结果或者测试数据存放在数据文件中,以用作后续的参数化测试.常用的文件文件类型无非 txt.csv.xls.properties.xml 这五种文件 ...

  7. python学习9—文件基本操作与高级操作

    python学习9—文件基本操作与高级操作 1. 文件基本操作 打开文件,获得文件句柄:f = open('filename',encoding='utf-8'),open会查询操作系统的编码方式,并 ...

  8. Java 实现 HDFS 文件基本操作

    1. pom <hadoop.version>2.7.3</hadoop.version> <dependency> <groupId>org.apac ...

  9. Java学习---下载文件并且对文件编码

    import java.io.IOException; import java.net.URLEncoder; import sun.misc.BASE64Encoder; public class ...

随机推荐

  1. MS SQL 小总结

    1.获取当前数据库下所有的表名称: Use 你的数据库 select Name from sysobjects where xtype='U' 2.获取当前表下的列名: select name fro ...

  2. Inno Setup使用上的几个问题 (转)

    Inno Setup使用上的几个问题: [问题一:Inno Setup 执行REG文件代码?][Run]Filename: "{win}\regedit.exe";Paramete ...

  3. 经典CSS颜色混合模式

    转自:http://www.webhek.com/css-blend-mode/ 注意:只有使用最新版的谷歌浏览器.火狐浏览器,才能正确的显示本文中的演示. Photoshop里最没有用处的一种功能— ...

  4. 关于select

    select 1与select * 的区别:“selelct 常量 from 表名” 对应所有行,返回的永远只有一个值,即常量 ,所以一般只用来判断是否有表记录:而“select * from 表名” ...

  5. ToString()使用方法

    1.数字转换到字符串格式说明符说明示例输出C货币2.5.ToString("C")¥2.50D十进制数25.ToString("D5")00025E科学型250 ...

  6. ios5和ios6横竖屏支持及ipad和iphone设备的判断

    ios5和ios6横竖屏支持及ipad和iphone设备的判断 判断是ipad还是iphone设备.此定义在PayViewControllerDemo-Prefix.pch 定义如下: #define ...

  7. 【网络流】【HDU3081】Marriage Match II

    得出正解前的思考: 1.我该如何处理朋友关系?消去朋友关系 ,直接由朋友关系得出情人关系的连线? 2.我该如何保证每次源点给1-N 平均分配1点流? 又可耻的看了题解,答案让我醍醐灌顶

  8. WorkFlow WF如何为一个集合赋值

    今天刚刚开始学习WorkFlow.无奈WF网络上的学习资料实在太少. 刚刚学到Foreach控制流的使用,需要一个集合参数.经研究,静态赋值可以搞定.动态赋值还没. 首先添加一个List<int ...

  9. 根据Model有值的自动生成添加的Sql语句

    static string Table_Name = ""; /// <summary> /// model实体中的字段名相对数据库表添加的字段 /// 如: /// ...

  10. struts 2 debug标签隐藏不显示

    struts2 的标签debug在页面中应用,并且struts的配置文件中也设置为开发模式,但是这个标签却被隐藏了,究其原因,是因为页面中body元素生命了class,其样式覆盖了原来的样式. 比如: ...