java学习之文件基本操作
一、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学习之文件基本操作的更多相关文章
- Java学习-022-Properties 文件数据写入
Properties 配置文件写入主要通过 Properties.setProperty 和 Properties.store 两个方法,此文以一个简单的 properties 文件写入源码做示例. ...
- Java学习-019-Properties 文件读取实例源代码
在这几天的学习过程中,有开发的朋友告知我,每个编程语言基本都有相应的配置文件支持类,像 Python 编程语言中支持的 ini 文件及其对应的配置文件读取类 ConfigParse,通过这个类,用户可 ...
- Java学习-018-EXCEL 文件写入实例源代码
众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 S ...
- Java学习-017-EXCEL 文件读取实例源代码
众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 S ...
- Java学习-016-CSV 文件读取实例源代码
上文(CSV文件写入)讲述了日常自动化测试过程中将测试数据写入 CSV 文件的源码,此文主要讲述如何从 CSV 文件获取测试过程中所需的参数化数据.敬请各位小主参阅,若有不足之处,敬请大神指正,不胜感 ...
- Java学习-015-CSV 文件写入实例源代码
在日常的自动化测试脚本编写的过程中,有时要将获取的测试结果或者测试数据存放在数据文件中,以用作后续的参数化测试.常用的文件文件类型无非 txt.csv.xls.properties.xml 这五种文件 ...
- python学习9—文件基本操作与高级操作
python学习9—文件基本操作与高级操作 1. 文件基本操作 打开文件,获得文件句柄:f = open('filename',encoding='utf-8'),open会查询操作系统的编码方式,并 ...
- Java 实现 HDFS 文件基本操作
1. pom <hadoop.version>2.7.3</hadoop.version> <dependency> <groupId>org.apac ...
- Java学习---下载文件并且对文件编码
import java.io.IOException; import java.net.URLEncoder; import sun.misc.BASE64Encoder; public class ...
随机推荐
- mysql拒绝访问(Error 1044/1045)问题的解决
遇到此问题 一般是权限问题 修改权限即可 然后用grant命令下放权限. GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'ro ...
- Python学习(二) 运行Python,编译Python
无论windos还是Linux只要安装了python,配置好了环境变量,则在命令行输入python这个命令的时候就会进入交互模式.在这个模式下可以进行一些简单的python代码编写.退出可以使用exi ...
- 钱币兑换问题(hd1284)
钱币兑换问题 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法.请你编程序计算出共有多少种兑法. Input 每行只有一个正整数N,N小于32768. Output 对应每个输 ...
- jQuery插件jqplot的详细配置说明和渲染器
jQuery插件jqplot的详细配置说明和渲染器 (2012-08-23 08:57:42) 转载▼ 标签: jqplot 详细配置 渲染器 it 分类: 技术类 jQuery.jqplot插件的官 ...
- TensorFlow 深度学习笔记 Stochastic Optimization
Stochastic Optimization 转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到I ...
- C# 几种常见的排序方法
1.冒泡排序 //冒泡排序 public void BubbleSort(int[] list) { int i, j, temp; bool done = false; j = ; while (( ...
- 在cocos2d-x界面中嵌入Android的WebView
在Cocos2dxActivity.java中, (1) 增加函数onCreateLayout, [java] view plain copy public LinearLayout onCre ...
- entity framework如何控制并发
entity framework如何控制并发 针对字段http://msdn.microsoft.com/en-us/library/vstudio/bb738618(v=vs.100).aspx ...
- asp.net调用非托管dll,无法加载 DLL,找不到指定模块解决方法。
最近开发一个项目,里面用到了非.net开发的一个dll文件接口,发现发布到window2003服务器上后,运行网站总是提示 "无法加载 DLL"D:\11\1.dll": ...
- hdu 5607 graph (矩阵乘法快速幂)
考虑一个经典的问题: 询问从某个点出发,走 k 步到达其它各点的方案数? 这个问题可以转化为矩阵相乘,所以矩阵快速幂即可解决. 本题思路: 矩阵经典问题:求从i点走k步后到达j点的方案数(mod p) ...