「javafile操作」java file方法
本篇文章给大家谈谈javafile操作,以及java file方法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、Java File的操作,复制文件夹的方法!
- 2、java 种的File类是用来做什么的?有什么用处?(追加40分)
- 3、java为什么要设计File和流的概念?
- 4、为什么Java中的file类无法只能操作不能读写?
Java File的操作,复制文件夹的方法!
你写的两个程序都不太严谨,我给你写一个复制文件和复制文件夹的标准例子吧。
//复制文件
package com.cdd.file;
import java.io.*;
public class FileText {
public static void main(String[] args) {
String sfpath = "E://word.txt"; // 指定文件地址
String dfpath = "F://word.txt";
File sFile = new File(sfpath); // 创建文件对象
File dFile = new File(dfpath);
try {
dFile.createNewFile(); // 新建文件
FileInputStream fis = new FileInputStream(sFile);
FileOutputStream fout = new FileOutputStream(dFile);
byte[] date = new byte[512]; // 创建字节数组
int rs = -1;
while ((rs = fis.read(date)) 0) { // 循环读取文件
fout.write(date, 0, rs); // 向文件写数据
}
fout.close();
fis.close(); // 关闭流
System.out.println("文件复制成功");
} catch (Exception e) {
e.printStackTrace();
}
}
}
//复制文件夹
package com.cdd.util;
import java.io.*;
public class FileUtil {
private static void copy(File[] files, File d) {
if (!d.exists()) //如果指定目录不存在
d.mkdir(); //创建目录
for (int i = 0; i files.length; i++) { //循环遍历要复制的文件夹
if (files[i].isFile()) { //如果文件夹中是文件
try {
FileInputStream fis = new FileInputStream(files[i]); //创建FileInputStream对象
FileOutputStream out = new FileOutputStream(new File(d
.getPath()
+ File.separator + files[i].getName())); //复制后文件的保存路径
int count = fis.available();
byte[] data = new byte[count];
if ((fis.read(data)) != -1) { //读取文件
out.write(data); //将读取的信息写入文件中
}
out.close(); //关闭流
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (files[i].isDirectory()) { //如果文件夹中是一个路径
File des = new File(d.getPath() + File.separator
+ files[i].getName()); //在复制后路径中创建子文件夹
des.mkdir();
copy(files[i].listFiles(), des); //再次调用本方法
}
}
System.out.println("文件夹复制成功");
}
public static void main(String[] args) {
File sourFile = null, desFile = null;
String sourFolder = "E://word"; //指定要进行复制的文件夹
String desFolder = "E://copy"; //指定复制后的文件夹地址
sourFile = new File(sourFolder);
if (!sourFile.isDirectory() || !sourFile.exists()) { //如果原文件夹不存在
System.out.println("原文件夹不存在");
}
desFile = new File(desFolder);
desFile.mkdir();
copy(sourFile.listFiles(), desFile); //调用文件夹复制方法
}
}
java 种的File类是用来做什么的?有什么用处?(追加40分)
File类是用来操作文件及目录(文件夹)的,你可以抛开别的,只是想想,
能对文件及目录干什么?无非就是创建文件或目录,删除、修改文件的内容等简单操作。再就是通过遍历文件做某些操作。File类就是干这些的。你再依据以下小程序理解下File类的操作就觉得简单了。
File
f
=
new
File("d://123.txt");//你可以把它理解为告诉File类要操作的路径,但是还没让它操作。
f.createNewFile()
;//创建文件,如果创建成功返回true
f.delete()
;//删除文件,如果删除成功返回true
。。。
java为什么要设计File和流的概念?
两个操作不一样。
File是对文件操作。比如说,创建文件,复制文件,删除文件,判断文件是否存在等等。或者说这个操作的对象是文件整体。
文件流是对文件内容的操作。比如说,读取文件内容,写入文件内容等等。
为什么Java中的file类无法只能操作不能读写?
说下我的理解,通常意思下,我们理解的文件,其实包含两部分,一部分是指保存在磁盘上的文件的具体内容,另一部分指的是保存在操作系统文件系统里面的文件名称,目录那些东西。(这里你可以去搜索下 linux inode 理解相关的概念,这里我也不是很熟)。
文件系统是操作系统封装磁盘操作产生的一层东西,我们只能通过操作系统提供的文件系统的API去操作磁盘。(这里可以去学习下操作系统相关的知识)。
java中的FIle指的是 文件系统里面的一个file,这个对象,只包含文件的一些元数据,文件大小,位置,创建时间,修改时间,创建人,权限等等一系列的文件元数据,它是不包含文件具体的内容的。所以你只能操作它,不能读写。所谓的操作,也就是对文件系统 那一棵文件目录树 进行增删改查的操作。
file这个对象里,应该包含这个文件在磁盘上的具体位置,通过这个位置,你就可以通过文件系统的API进行文件的读写了。(这里,我的理解是这样,具体是不是这样,我也不确定,可以去搜索 posix标准 查看通用的一些文件操作的API 来验证下)。
而对文件具体内容的操作,你必须通过IO操作去实现。这里过程大概如下,涉及操作系统跟驱动相关的过程,去百度吧,我也不是很熟。
javafile操作的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java file方法、javafile操作的信息别忘了在本站进行查找喔。
发布于:2022-11-23,除非注明,否则均为
原创文章,转载请注明出处。