简单的文件操作

简单的文件操作
如今很多程序不仅仅涉及到控制台的运行,更是涉及到文件这方面的操作。
对文件的简单操作主要包括以下几个方面:
1. 创建文件或者目录(文件夹)
2. 打开并读取文件中的内容
3. 打开并将自定义内容写入文件中
4. 查找文件(用关键字)
接下来,将用实例代码进行演示说明:
以下是一个文件管理的程序,该程序要是实现的功能主要有读文件,写文件,找文件,建文件。
读文件:
读取文件类的关键字是FileInputStream,即实例化一个FileInputStream对象来实现对文件读取的操作,这里根据java中提供的两种read方法,我将写出两种读取方法:
// 定义一个读文件的方法(一个一个字节的读取)
public void readFile(String fileName) {
try {
//实例化一个 FileInputStream对象 ,表示是对fileName文件进行操作
FileInputStream fis = new FileInputStream(fileName);
//将文件中内容一个一个读出
int c = fis.read();
while (c != -1) {
System.out.println((char) c);
c = fis.read();
}
//关闭文件
fis.close();
} catch (Exception e) {
e.printStackTrace();
} }
注意:1.fis.read();该语句每执行一次将返回至本次读取字节的下一个字节处;
2.当read()读取完内容以后,将返回值-1;
3.read()方法返回值是int而不是byte,这是因为byte的范围为-128至127,存负数,可能与2中冲突
4.考虑到文件的安全性,每打开一次文件就需要关闭文件
// 定义另外一个读文件的方法(整个一起读取)
public void readFile1(String fileName) {
FileInputStream fis;
try {
fis = new FileInputStream(fileName);
try {
byte[] bytes = new byte[fis.available()];
fis.read(bytes);
String s = new String(bytes);
System.out.println(s);
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
写文件:
// 定义一个写文件的方法
public void writeFile(String fileName, String content) throws IOException {
try {
FileOutputStream fos = new FileOutputStream(fileName);
byte[] bytes = new byte[content.length()];
// 该方法将字符串形式转化成字节形式
bytes = content.getBytes();
fos.write(bytes);
fos.close();

} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
注意:将string类型转化成byte类型的方法是string对象.getBytes();
找文件:
// 定义一个查找文件的方法
public void findFile(File file, String findName) {
// 建立一个file数组来存放指定路径下的文件
File[] sonFile = file.listFiles();
// 如果指定路径下有文件,则在sonFile数组中将有不是null的元素,这时查找
if (sonFile != null) {
for (int i = 0; i < sonFile.length; i++) {
// 需要判断一下sonFile[i]是否是一个标准文件
// sonFile[i]是一个标准文件则执行名字比较操作
if (sonFile[i].isFile()) {
if (sonFile[i].getName().indexOf(findName) != -1) {
System.out.println(sonFile[i].getAbsolutePath());
}
}
// 如果sonFile[i]不是一个标准文件则递归
else {
findFile(sonFile[i], findName);
}
}
}
}
建文件:
// 定义一个创建文件的方法
public void testFile(String fileName) {
System.out.println("testFile执行了!");
File file = new File(fileName);
// 判断该路径是否是一个目录或者是否存在
if (file.isDirectory() || !file.exists()) {
System.out.println("文件/文件夹创立了!");
file.mkdir();
}
// 如果该路径是标准文件了
if (file.isFile()) {
System.out.println(file.getAbsolutePath());
file.renameTo(new File("D:/rename.txt"));
}
}
现在将上述函数整合到一个主函数中
public static void main(String[] args) throws IOException {
FileManager file = new FileManager();
// 用第一种方法读文件
file.readFile("D:/text.txt");
// 用第二种方法读文件
file.readFile1("D:/text.txt");
// 写文件
file.writeFile("D:/write.txt", "hello world!");
// 找文件
file.findFile(new File("D:/"), "txt");
// 创建文件
file.testFile("D:/text.txt");

}
其中FileManager类是自定义实现主函数的类
这样一来,在主函数执行前,路径为“D:/”下的文件如图:

[img]http://dl2.iteye.com/upload/attachment/0087/1826/913baa93-061e-33d6-aec9-8280ffba8222.png[/img]
在主函数执行前text.txt文件中的内容如下:

[img]http://dl2.iteye.com/upload/attachment/0087/1839/7135dc49-52e1-3c45-8393-aebbe4153971.png[/img]


在主函数执行后,运行结果是:

[img]http://dl2.iteye.com/upload/attachment/0087/1828/bb99117c-c743-3212-ad71-213e328754b2.png[/img]
write.txt文件中写入的结果如下:

[img]http://dl2.iteye.com/upload/attachment/0087/1832/00e6e156-3fbd-3249-98d5-895395ead246.png[/img]

路径为“D:/”下的文件的结果是:

[img]http://dl2.iteye.com/upload/attachment/0087/1830/55aa6e18-e44a-3068-ab65-e1309134bf3d.png[/img]

原本是text.txt的文件变成了rename.txt文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值