简略的文件操作

简单的文件操作
简单的文件操作
如今很多程序不仅仅涉及到控制台的运行,更是涉及到文件这方面的操作。
对文件的简单操作主要包括以下几个方面:
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:/”下的文件如图:

简略的文件操作
在主函数执行前text.txt文件中的内容如下:

简略的文件操作


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

简略的文件操作
write.txt文件中写入的结果如下:

简略的文件操作

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

简略的文件操作

原本是text.txt的文件变成了rename.txt文件