⑴ java中的file类怎么用
java里的文件操作控制
一.获得控制台用户输入的信息
/** *//**获得控制台用户输入的信息
* @return
* @throws IOException
*/
public String getInputMessage() throws IOException...{
System.out.println("请输入您的命令∶");
byte buffer[]=new byte[1024];
int count=System.in.read(buffer);
char[] ch=new char[count-2];//最后两位为结束符,删去不要
for(int i=0;i<count-2;i++)
ch[i]=(char)buffer[i];
String str=new String(ch);
return str;
}
可以返回用户输入的信息,不足之处在于不支持中文输入,有待进一步改进。
二.复制文件
1.以文件流的方式复制文件
/** *//**以文件流的方式复制文件
* @param src 文件源目录
* @param dest 文件目的目录
* @throws IOException
*/
public void File(String src,String dest) throws IOException...{
FileInputStream in=new FileInputStream(src);
File file=new File(dest);
if(!file.exists())
file.createNewFile();
FileOutputStream out=new FileOutputStream(file);
int c;
byte buffer[]=new byte[1024];
while((c=in.read(buffer))!=-1)...{
for(int i=0;i<c;i++)
out.write(buffer[i]);
}
in.close();
out.close();
}
该方法经过测试,支持中文处理,并且可以复制多种类型,比如txt,xml,jpg,doc等多种格式
三.写文件
1.利用PrintStream写文件
/** *//**
* 文件输出示例
*/
public void PrintStreamDemo()...{
try ...{
FileOutputStream out=new FileOutputStream("D:/test.txt");
PrintStream p=new PrintStream(out);
for(int i=0;i<10;i++)
p.println("This is "+i+" line");
} catch (FileNotFoundException e) ...{
e.printStackTrace();
}
}
2.利用StringBuffer写文件
public void StringBufferDemo() throws IOException......{
File file=new File("/root/sms.log");
if(!file.exists())
file.createNewFile();
FileOutputStream out=new FileOutputStream(file,true);
for(int i=0;i<10000;i++)......{
StringBuffer sb=new StringBuffer();
sb.append("这是第"+i+"行:前面介绍的各种方法都不关用,为什么总是奇怪的问题 ");
out.write(sb.toString().getBytes("utf-8"));
}
out.close();
}
该方法可以设定使用何种编码,有效解决中文问题。
四.文件重命名
/** *//**文件重命名
* @param path 文件目录
* @param oldname 原来的文件名
* @param newname 新文件名
*/
public void renameFile(String path,String oldname,String newname)...{
if(!oldname.equals(newname))...{//新的文件名和以前文件名不同时,才有必要进行重命名
File oldfile=new File(path+"/"+oldname);
File newfile=new File(path+"/"+newname);
if(newfile.exists())//若在该目录下已经有一个文件和新文件名相同,则不允许重命名
System.out.println(newname+"已经存在!");
else...{
oldfile.renameTo(newfile);
}
}
} 五.转移文件目录
转移文件目录不等同于复制文件,复制文件是复制后两个目录都存在该文件,而转移文件目录则是转移后,只有新目录中存在该文件。
/** *//**转移文件目录
* @param filename 文件名
* @param oldpath 旧目录
* @param newpath 新目录
* @param cover 若新目录下存在和转移文件具有相同文件名的文件时,是否覆盖新目录下文件,cover=true将会覆盖原文件,否则不操作
*/
public void changeDirectory(String filename,String oldpath,String newpath,boolean cover)...{
if(!oldpath.equals(newpath))...{
File oldfile=new File(oldpath+"/"+filename);
File newfile=new File(newpath+"/"+filename);
if(newfile.exists())...{//若在待转移目录下,已经存在待转移文件
if(cover)//覆盖
oldfile.renameTo(newfile);
else
System.out.println("在新目录下已经存在:"+filename);
}
else...{
oldfile.renameTo(newfile);
}
}
}
六.读文件
1.利用FileInputStream读取文件
/** *//**读文件
* @param path
* @return
* @throws IOException
*/
public String FileInputStreamDemo(String path) throws IOException...{
File file=new File(path);
if(!file.exists()||file.isDirectory())
throw new FileNotFoundException();
FileInputStream fis=new FileInputStream(file);
byte[] buf = new byte[1024];
StringBuffer sb=new StringBuffer();
while((fis.read(buf))!=-1)...{
sb.append(new String(buf));
buf=new byte[1024];//重新生成,避免和上次读取的数据重复
}
return sb.toString();
}
2.利用BufferedReader读取
在IO操作,利用BufferedReader和BufferedWriter效率会更高一点
/** *//**读文件
* @param path
* @return
* @throws IOException
*/
public String BufferedReaderDemo(String path) throws IOException...{
File file=new File(path);
if(!file.exists()||file.isDirectory())
throw new FileNotFoundException();
BufferedReader br=new BufferedReader(new FileReader(file));
String temp=null;
StringBuffer sb=new StringBuffer();
temp=br.readLine();
while(temp!=null)...{
sb.append(temp+" ");
temp=br.readLine();
}
return sb.toString();
}
3.利用dom4j读取xml文件
/** *//**从目录中读取xml文件
* @param path 文件目录
* @return
* @throws DocumentException
* @throws IOException
*/
public Document readXml(String path) throws DocumentException, IOException...{
File file=new File(path);
BufferedReader bufferedreader = new BufferedReader(new FileReader(file));
SAXReader saxreader = new SAXReader();
Document document = (Document)saxreader.read(bufferedreader);
bufferedreader.close();
return document;
}
七.创建文件(文件夹)
1.创建文件夹 /** *//**创建文件夹
* @param path 目录
*/
public void createDir(String path)...{
File dir=new File(path);
if(!dir.exists())
dir.mkdir();
}
2.创建新文件 /** *//**创建新文件
* @param path 目录
* @param filename 文件名
* @throws IOException
*/
public void createFile(String path,String filename) throws IOException...{
File file=new File(path+"/"+filename);
if(!file.exists())
file.createNewFile();
}
八.删除文件(目录)
1.删除文件 /** *//**删除文件
* @param path 目录
* @param filename 文件名
*/
public void delFile(String path,String filename)...{
File file=new File(path+"/"+filename);
if(file.exists()&&file.isFile())
file.delete();
}
2.删除目录
要利用File类的delete()方法删除目录时,必须保证该目录下没有文件或者子目录,否则删除失败,因此在实际应用中,我们要删除目录,必须利用递归删除该目录下的所有子目录和文件,然后再删除该目录。 /** *//**递归删除文件夹
* @param path
*/
public void delDir(String path)...{
File dir=new File(path);
if(dir.exists())...{
File[] tmp=dir.listFiles();
for(int i=0;i<tmp.length;i++)...{
if(tmp[i].isDirectory())...{
delDir(path+"/"+tmp[i].getName());
}
else...{
tmp[i].delete();
}
}
dir.delete();
}
}
⑵ java中 File类是什么
在java中File类是可以直接操作文件的类,
它有四个构造函数:
File(String parent,String child)
File(File parent,String child)
File(URI uri)
File(String pathname)
封装了以下主要方法:
canWrite() 返回文件是否可以读写
canRead() 返回文件是否可读
compareTo(File pathname)检查文件路径间的顺序
createNewFile() 当文件不存在时生成文件
delete() 从文件系统内删除该文件
deleteOnExit() 程序顺利结束时删除文件
equals(Object obj) 检查特定对象的路径名是否相等
exists() 判断文件是否存在
getAbsoluteFile() 返回文件完整路径的File实例
getAbsolutePath() 返回文件完整路径
getName() 返回文件名称
getParent() 返回文件父目录路径
getPath() 返回文件路径字符串
getParentFile() 返回文件所在文件夹的路径
hashCode() 返回文件哈希码
isDirectory() 判断该路径指示的是否是目录
isFile() 判断该路径指示的是否是文件
lastModified() 返回该文件最后更改时间标志
length() 返回文件长度
list() 返回文件和目录清单
mkdir() 生成指定的目录
renameTo(File dest) 更改文件名字
setReadOnly() 将文件设置为可读
toString() 返回文件状态的字符串
toURL() 将文件的路径字符串转换成URL
推荐于 2017-11-25
查看全部5个回答
— 你看完啦,以下内容更有趣 —
在java中File是什么意思?有什么作用?
在java中File类是可以直接操作文件的类,
它有四个构造函数:
File(String parent,String child)
File(File parent,String child)
File(URI uri)
File(String pathname)
封装了以下主要方法:
canWrite() 返回文件是否可以读写
canRead() 返回文件是否可读
compareTo(File pathname)检查文件路径间的顺序
createNewFile() 当文件不存在时生成文件
delete() 从文件系统内删除该文件
deleteOnExit() 程序顺利结束时删除文件
equals(Object obj) 检查特定对象的路径名是否相等
exists() 判断文件是否存在
getAbsoluteFile() 返回文件完整路径的File实例
getAbsolutePath() 返回文件完整路径
getName() 返回文件名称
getParent() 返回文件父目录路径
getPath() 返回文件路径字符串
getParentFile() 返回文件所在文件夹的路径
hashCode() 返回文件哈希码
isDirectory() 判断该路径指示的是否是目录
isFile() 判断该路径指示的是否是文件
lastModified() 返回该文件最后更改时间标志
length() 返回文件长度
list() 返回文件和目录清单
mkdir() 生成指定的目录
renameTo(File dest) 更改文件名字
setReadOnly() 将文件设置为可读
toString() 返回文件状态的字符串
toURL() 将文件的路径字符串转换成URL
⑶ java中File类常用的方法有哪些
给你一个中文的吧。你不想看英文的API;File类是直接继承Object类的。Object类的方法我就不不写了:
字段摘要
static String pathSeparator
与系统有关的路径分隔符,为了方便,它被表示为一个字符串。
static char pathSeparatorChar
与系统有关的路径分隔符。
static String separator
与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。
static char separatorChar
与系统有关的默认名称分隔符。
构造方法摘要
File(File parent, String child)
根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String pathname)
通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File(String parent, String child)
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
File(URI uri)
通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。
方法摘要
boolean canExecute()
测试应用程序是否可以执行此抽象路径名表示的文件。
boolean canRead()
测试应用程序是否可以读取此抽象路径名表示的文件。
boolean canWrite()
测试应用程序是否可以修改此抽象路径名表示的文件。
int compareTo(File pathname)
按字母顺序比较两个抽象路径名。
boolean createNewFile()
当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
static File createTempFile(String prefix, String suffix)
在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。
static File createTempFile(String prefix, String suffix, File directory)
在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。
boolean delete()
删除此抽象路径名表示的文件或目录。
void deleteOnExit()
在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。
boolean equals(Object obj)
测试此抽象路径名与给定对象是否相等。
boolean exists()
测试此抽象路径名表示的文件或目录是否存在。
File getAbsoluteFile()
返回此抽象路径名的绝对路径名形式。
String getAbsolutePath()
返回此抽象路径名的绝对路径名字符串。
File getCanonicalFile()
返回此抽象路径名的规范形式。
String getCanonicalPath()
返回此抽象路径名的规范路径名字符串。
long getFreeSpace()
返回此抽象路径名指定的分区中未分配的字节数。
String getName()
返回由此抽象路径名表示的文件或目录的名称。
String getParent()
返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
File getParentFile()
返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。
String getPath()
将此抽象路径名转换为一个路径名字符串。
long getTotalSpace()
返回此抽象路径名指定的分区大小。
long getUsableSpace()
返回此抽象路径名指定的分区上可用于此虚拟机的字节数。
int hashCode()
计算此抽象路径名的哈希码。
boolean isAbsolute()
测试此抽象路径名是否为绝对路径名。
boolean isDirectory()
测试此抽象路径名表示的文件是否是一个目录。
boolean isFile()
测试此抽象路径名表示的文件是否是一个标准文件。
boolean isHidden()
测试此抽象路径名指定的文件是否是一个隐藏文件。
long lastModified()
返回此抽象路径名表示的文件最后一次被修改的时间。
long length()
返回由此抽象路径名表示的文件的长度。
String[] list()
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
String[] list(FilenameFilter filter)
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles()
返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
File[] listFiles(FileFilter filter)
返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles(FilenameFilter filter)
返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
static File[] listRoots()
列出可用的文件系统根。
boolean mkdir()
创建此抽象路径名指定的目录。
boolean mkdirs()
创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
boolean renameTo(File dest)
重新命名此抽象路径名表示的文件。
boolean setExecutable(boolean executable)
设置此抽象路径名所有者执行权限的一个便捷方法。
boolean setExecutable(boolean executable, boolean ownerOnly)
设置此抽象路径名的所有者或所有用户的执行权限。
boolean setLastModified(long time)
设置此抽象路径名指定的文件或目录的最后一次修改时间。
boolean setReadable(boolean readable)
设置此抽象路径名所有者读权限的一个便捷方法。
boolean setReadable(boolean readable, boolean ownerOnly)
设置此抽象路径名的所有者或所有用户的读权限。
boolean setReadOnly()
标记此抽象路径名指定的文件或目录,从而只能对其进行读操作。
boolean setWritable(boolean writable)
设置此抽象路径名所有者写权限的一个便捷方法。
boolean setWritable(boolean writable, boolean ownerOnly)
设置此抽象路径名的所有者或所有用户的写权限。
String toString()
返回此抽象路径名的路径名字符串。
URI toURI()
构造一个表示此抽象路径名的 file: URI。
URL toURL()
已过时。 此方法不会自动转义 URL 中的非法字符。建议新的代码使用以下方式将抽象路径名转换为 URL:首先通过 toURI 方法将其转换为 URI,然后通过 URI.toURL 方法将 URI 装换为 URL。