Java文件处理类
发布时间:2020-05-24 16:06:52 所属栏目:Java 来源:互联网
导读:Java文件处理类
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 包含一些对文件的基本操作。
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class fileTest {
static int countFiles=0;
static int countFolders=0;
public static void createFile(String filepath)
{
File file=new File(filepath);
if(file.exists())
{
System.out.println("目标文件已经存在!");
return;
}
if(filepath.endsWith(File.separator))
{
System.out.println("目标文件不能为目录!");
return;
}
try {
if(file.createNewFile())
System.out.println("文件创建成功!");
else
{
System.out.println("文件创建失败!");
return;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void createDir(String dirname)
{
if(!dirname.endsWith(File.separator))
dirname=dirname+File.separator;
File dir=new File(dirname);
if(dir.exists())
{
System.out.println("目录已存在!");
return;
}
if(dir.mkdirs())
System.out.println("目录创建成功!");
else
{
System.out.println("目录创建失败!");
return;
}
}
public static boolean checkDirExist(String dirname)
{
File file=new File(dirname);
if(file.exists())
{
if(file.isDirectory())
return true;
}
return false;
}
public static File[] getDirFiles(String dirname)
{
File[] result=null;
File fileDir = new File(dirname);
if (!fileDir.exists())
{
System.out.println("文件夹不存在");
return null;
}
else
{
if (!fileDir.isDirectory())
{
fileDir = new File(fileDir.getParent());
}
result = fileDir.listFiles();
}
return result;
}
public static void deleteFiles(String filename)
{
File file=new File(filename);
if(!file.exists())
{
System.out.println("文件不存在!");
return;
}
if(file.delete())
{
System.out.println(filename+"文件删除成功!");
}
}
public static void deleteDirs(String dirname)
{
if(!dirname.endsWith(File.separator))
dirname=dirname+File.separator;
File dirn=new File(dirname);
if(!dirn.exists())
{
System.out.println("文件目录不存在!");
return;
}
File[] files=dirn.listFiles();
for(int i=0;i<files.length;i++)
{
if(files[i].isFile())
{
deleteFiles(files[i].getAbsolutePath());
}
else
deleteDirs(files[i].getAbsolutePath());
}
if(dirn.delete())
{
System.out.println("目录删除成功!");
}
}
public static void searchFiles(String dirname,String filename)
{
if(!dirname.endsWith(File.separator))
dirname=dirname+File.separator;
File dir=new File(dirname);
if(!dir.exists())
{
System.out.println("该文件夹不存在");
return;
}
File[] files=dir.listFiles();
for(int i=0;i<files.length;i++)
{
if(files[i].isFile())
{
if(files[i].getName().equals(filename))
System.out.println("文件路径为:"+files[i].getAbsolutePath());
}
else
{
searchFiles(files[i].getAbsolutePath(),filename);
}
}
}
public static File[] searchFile(File folder,final String keyWord)
{
File[] subFolders=folder.listFiles(new FileFilter()
{
public boolean accept(File pathname)
{
if(pathname.isFile())
countFiles++;
else
countFolders++;
if(pathname.isDirectory()||(pathname.isFile()&&pathname.getName().contains(keyWord)))
return true;
return false;
}
});
List<File> result=new ArrayList<File>();
for(int i=0;i<subFolders.length;i++)
{
if(subFolders[i].isFile())
result.add(subFolders[i]);
else
{
File[] foldResult=searchFile(subFolders[i],keyWord);
for(int j=0;j<foldResult.length;j++)
result.add(foldResult[j]);
}
}
File files[]=new File[result.size()];
result.toArray(files);
return files;
}
public static void copyFileToFile(File tofile,File fromfile)
{
if(tofile.exists())
{
System.out.println("文件已经存在!");
return;
}
else
{
try {
tofile.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("复制文件从"+fromfile.getAbsolutePath()+"到"+tofile.getAbsolutePath());
try {
InputStream is=new FileInputStream(fromfile);
FileOutputStream fos=new FileOutputStream(tofile);
byte []buffer=new byte[1024];
try {
while(is.read(buffer)!=-1)
fos.write(buffer);
is.close();
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @param file 要复制的文件
* @param dirname 文件复制到目标目录
*/
public static void copyFileToDir(File file,String dirname)
{
createDir(dirname);
String filename=dirname+"/"+file.getName();
File nfile=new File(filename);
copyFileToFile(nfile,file);
}
public static void copyDirToDir(String todir,String fromdir)
{
File []f=getDirFiles(fromdir);
for(int i=0;i<f.length;i++)
{
if(f[i].isFile())
copyFileToDir(f[i],todir);
else
copyDirToDir(todir+"/"+f[i].getName(),fromdir+"/"+f[i].getName());
}
System.out.println(fromdir+"复制到文件夹"+todir+"复制完成!");
}
/**
* @param args
* @throws IOException
*/
public static byte[] readFilebyByte(String filename) throws IOException
{
byte[] result = null;
File file = new File(filename);
if (file.exists() && file.isFile() && file.length() > 0)
{
result = new byte[(int) file.length()];
FileInputStream inStream = new FileInputStream(filename);
inStream.read(result);
inStream.close();
}
return result;
}
public static void readFilebyLine(String filename) throws IOException
{
File file=new File(filename);
BufferedReader reader=null;
System.out.println("以行为单位读取数据,一次读取一行:");
try {
reader=new BufferedReader(new FileReader(file));
String temp=null;
int line=1;
while((temp=reader.readLine())!=null)
{
System.out.println("line"+line+":"+temp);
line++;
}
reader.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void writeFilebyByte(String filename) throws IOException
{
String content="fsfni ds dw wod";
File file=new File(filename);
OutputStream out=null;
System.out.println("以字节为单位写入文件:"+content);
out=new FileOutputStream(file);
byte []bytes=content.getBytes();
out.write(bytes);
out.close();
}
public static void writeFilebyChar(String filename) throws IOException
{
String content="fsfni ds dw wod";
File file=new File(filename);
Writer writer=null;
System.out.println("以字符为单位写入文件:"+content);
writer=new OutputStreamWriter(new FileOutputStream(file));
writer.write(content);
writer.close();
}
public static void writeFilebyLine(String filename) throws IOException
{
String content="fsfni ds dw wod";
File file=new File(filename);
PrintWriter writer=null;
System.out.println("以行为单位写入文件:"+content);
writer=new PrintWriter(new FileOutputStream(file));
writer.println(content);
writer.print(2355);
writer.flush();
writer.close();
}
public static void addContent1(String filename) throws IOException
{
FileWriter writer=new FileWriter(filename,true);
String content="this is a nice man,so you should get it";
writer.write(content);
writer.close();
}
public static void addContent2(String filename) throws IOException
{
RandomAccessFile rfile=new RandomAccessFile(filename,"rw");
long filelength=rfile.length();
rfile.seek(filelength);
String content="hello world";
rfile.write(content.getBytes("gb2312"));
rfile.close();
}
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String dirname="c:/cc/";
String todir="c:/dd/";
String tdir="c:/ee/";
String fn="c:/cc/c.txt";
String filename="ww.txt";
File folder=new File("c:/cc/");
String keyword="ww";
//readFilebyLine(fn);
writeFilebyLine(fn);
addContent1(fn);
addContent2(fn);
//File fromfile=new File("c:/cc/c.txt");
//File tofile=new File("e:/ccc.txt");
//byte[] fb=readFilebyByte(fn);
//for(int i=0;i<fb.length;i++)
// System.out.println((char)fb[i]);
//System.out.println(fb.toString());
//copyFile(tofile,fromfile);
//copyFileToDir(fromfile,todir);
//copyDirToDir(tdir,dirname);
//File[] f=searchFile(folder,keyword);
//createDir(dirname);
//deleteDirs(dirname);
//searchFiles(dirname,filename);
//File[] f=getDirFiles(dirname);
//for(int i=0;i<f.length;i++)
{
// System.out.println(f[i].getAbsolutePath());
}
}
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何检测单个Action类中多个提交按钮场景中单击的提交按钮?
- java – Integer.parseInt()抛出带有UTF-8文件的NumberForm
- 设置Java系统属性而不将值放在命令行上
- java – Spring Boot Security不会抛出401 Unauthorized Ex
- 【Android工具类】验证码倒计时帮助类CountDownButtonHelpe
- Spring JdbcTemplate 批量插入或更新操作
- 收藏 – 给我一个多功能的实用用例
- java – 只有静态方法的类应该是抽象的吗?
- 【Android工具类】比DES加密更安全的算法——3DES加密算法
- java中继承测试代码分析
