当前位置:首页 » 文件管理 » java文件夹操作

java文件夹操作

发布时间: 2022-06-11 17:56:42

java 根据一个文件内容同时操作多个文件

可以用多线程来操作,java8的异步多线程CompletionStage接口,就可以实现,或者不使用多线程使用单线程版反应器模式Reactor(反应器)定制几个处理器接口,根据第一个文件的内容来分发到不同的处理器来处理你具体的需求,具体代码有空可以写给你

❷ 如何使用java压缩文件夹成为zip包

在JDK中有一个zip工具类:

java.util.zip Provides classes for reading and writing the standard ZIP and
GZIP file formats.

使用此类可以将文件夹或者多个文件进行打包压缩操作。

在使用之前先了解关键方法:

ZipEntry(String name) Creates a new zip entry with the specified name.

使用ZipEntry的构造方法可以创建一个zip压缩文件包的实例,然后通过ZipOutputStream将待压缩的文件以流的形式写进该压缩包中。具体实现代码如下:

importjava.io.BufferedInputStream;
importjava.io.BufferedOutputStream;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.util.zip.ZipEntry;
importjava.util.zip.ZipOutputStream;
/**
*将文件夹下面的文件
*打包成zip压缩文件
*
*@authoradmin
*
*/
publicfinalclassFileToZip{

privateFileToZip(){}

/**
*将存放在sourceFilePath目录下的源文件,打包成fileName名称的zip文件,并存放到zipFilePath路径下
*@paramsourceFilePath:待压缩的文件路径
*@paramzipFilePath:压缩后存放路径
*@paramfileName:压缩后文件的名称
*@return
*/
publicstaticbooleanfileToZip(StringsourceFilePath,StringzipFilePath,StringfileName){
booleanflag=false;
FilesourceFile=newFile(sourceFilePath);
FileInputStreamfis=null;
BufferedInputStreambis=null;
FileOutputStreamfos=null;
ZipOutputStreamzos=null;

if(sourceFile.exists()==false){
System.out.println("待压缩的文件目录:"+sourceFilePath+"不存在.");
}else{
try{
FilezipFile=newFile(zipFilePath+"/"+fileName+".zip");
if(zipFile.exists()){
System.out.println(zipFilePath+"目录下存在名字为:"+fileName+".zip"+"打包文件.");
}else{
File[]sourceFiles=sourceFile.listFiles();
if(null==sourceFiles||sourceFiles.length<1){
System.out.println("待压缩的文件目录:"+sourceFilePath+"里面不存在文件,无需压缩.");
}else{
fos=newFileOutputStream(zipFile);
zos=newZipOutputStream(newBufferedOutputStream(fos));
byte[]bufs=newbyte[1024*10];
for(inti=0;i<sourceFiles.length;i++){
//创建ZIP实体,并添加进压缩包
ZipEntryzipEntry=newZipEntry(sourceFiles[i].getName());
zos.putNextEntry(zipEntry);
//读取待压缩的文件并写进压缩包里
fis=newFileInputStream(sourceFiles[i]);
bis=newBufferedInputStream(fis,1024*10);
intread=0;
while((read=bis.read(bufs,0,1024*10))!=-1){
zos.write(bufs,0,read);
}
}
flag=true;
}
}
}catch(FileNotFoundExceptione){
e.printStackTrace();
thrownewRuntimeException(e);
}catch(IOExceptione){
e.printStackTrace();
thrownewRuntimeException(e);
}finally{
//关闭流
try{
if(null!=bis)bis.close();
if(null!=zos)zos.close();
}catch(IOExceptione){
e.printStackTrace();
thrownewRuntimeException(e);
}
}
}
returnflag;
}

publicstaticvoidmain(String[]args){
StringsourceFilePath="D:\TestFile";
StringzipFilePath="D:\tmp";
StringfileName="12700153file";
booleanflag=FileToZip.fileToZip(sourceFilePath,zipFilePath,fileName);
if(flag){
System.out.println("文件打包成功!");
}else{
System.out.println("文件打包失败!");
}
}

}

❸ java 文件夹操作

你好,按照你的要求代码编写如下,可以直接运行

import java.io.File;

public class test {
public static void main(String[] args) {
File root = new File("d:\\");

for (File file : root.listFiles()) {
if (file.isDirectory()) {
for (File f : file.listFiles()) {
String fileName = f.getName();
if (fileName.endsWith(".png")) {
System.out.println(file.getName());
break;
}
}
}
}
}
}

❹ java 如何打开一个文件夹

给你一段文件操作的例子

package com.file.sample;

import java.io.*;

public class FileOperate {
public FileOperate() {
}

/**
* 新建目录
*
* @param folderPath
* String 如 c:/fqf
* @return boolean
*/
public void newFolder(String folderPath) {
try {
String filePath = folderPath;
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File(filePath);
if (!myFilePath.exists()) {
myFilePath.mkdir();
}
} catch (Exception e) {
System.out.println("新建目录操作出错");
e.printStackTrace();
}
}

/**
* 新建文件
*
* @param filePathAndName
* String 文件路径及名称 如c:/fqf.txt
* @param fileContent
* String 文件内容
* @return boolean
*/
public void newFile(String filePathAndName, String fileContent) {

try {
String filePath = filePathAndName;
filePath = filePath.toString();
File myFilePath = new File(filePath);
if (!myFilePath.exists()) {
myFilePath.createNewFile();
}
FileWriter resultFile = new FileWriter(myFilePath);
PrintWriter myFile = new PrintWriter(resultFile);
String strContent = fileContent;
myFile.println(strContent);
resultFile.close();

} catch (Exception e) {
System.out.println("新建目录操作出错");
e.printStackTrace();

}

}

/**
* 删除文件
*
* @param filePathAndName
* String 文件路径及名称 如c:/fqf.txt
* @param fileContent
* String
* @return boolean
*/
public void delFile(String filePathAndName) {
try {
String filePath = filePathAndName;
filePath = filePath.toString();
java.io.File myDelFile = new java.io.File(filePath);
myDelFile.delete();

} catch (Exception e) {
System.out.println("删除文件操作出错");
e.printStackTrace();

}

}

/**
* 删除文件夹
*
* @param filePathAndName
* String 文件夹路径及名称 如c:/fqf
* @param fileContent
* String
* @return boolean
*/
public void delFolder(String folderPath) {
try {
delAllFile(folderPath); // 删除完里面所有内容
String filePath = folderPath;
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File(filePath);
myFilePath.delete(); // 删除空文件夹

} catch (Exception e) {
System.out.println("删除文件夹操作出错");
e.printStackTrace();

}

}

/**
* 删除文件夹里面的所有文件
*
* @param path
* String 文件夹路径 如 c:/fqf
*/
public void delAllFile(String path) {
File file = new File(path);
if (!file.exists()) {
return;
}
if (!file.isDirectory()) {
return;
}
String[] tempList = file.list();
File temp = null;
for (int i = 0; i < tempList.length; i++) {
if (path.endsWith(File.separator)) {
temp = new File(path + tempList[i]);
} else {
temp = new File(path + File.separator + tempList[i]);
}
if (temp.isFile()) {
temp.delete();
}
if (temp.isDirectory()) {
delAllFile(path + "/" + tempList[i]);// 先删除文件夹里面的文件
delFolder(path + "/" + tempList[i]);// 再删除空文件夹
}
}
}

/**
* 复制单个文件
*
* @param oldPath
* String 原文件路径 如:c:/fqf.txt
* @param newPath
* String 复制后路径 如:f:/fqf.txt
* @return boolean
*/
public void File(String oldPath, String newPath) {
try {
int bytesum = 0;
int byteread = 0;
File oldfile = new File(oldPath);
if (oldfile.exists()) { // 文件存在时
InputStream inStream = new FileInputStream(oldPath); // 读入原文件
FileOutputStream fs = new FileOutputStream(newPath);
byte[] buffer = new byte[1444];
int length;
while ((byteread = inStream.read(buffer)) != -1) {
bytesum += byteread; // 字节数 文件大小
System.out.println(bytesum);
fs.write(buffer, 0, byteread);
}
inStream.close();
}
} catch (Exception e) {
System.out.println("复制单个文件操作出错");
e.printStackTrace();

}

}

/**
* 复制整个文件夹内容
*
* @param oldPath
* String 原文件路径 如:c:/fqf
* @param newPath
* String 复制后路径 如:f:/fqf/ff
* @return boolean
*/
public void Folder(String oldPath, String newPath) {

try {
(new File(newPath)).mkdirs(); // 如果文件夹不存在 则建立新文件夹
File a = new File(oldPath);
String[] file = a.list();
File temp = null;
for (int i = 0; i < file.length; i++) {
if (oldPath.endsWith(File.separator)) {
temp = new File(oldPath + file[i]);
} else {
temp = new File(oldPath + File.separator + file[i]);
}

if (temp.isFile()) {
FileInputStream input = new FileInputStream(temp);
FileOutputStream output = new FileOutputStream(newPath
+ "/" + (temp.getName()).toString());
byte[] b = new byte[1024 * 5];
int len;
while ((len = input.read(b)) != -1) {
output.write(b, 0, len);
}
output.flush();
output.close();
input.close();
}
if (temp.isDirectory()) {// 如果是子文件夹
Folder(oldPath + "/" + file[i], newPath + "/" + file[i]);
}
}
} catch (Exception e) {
System.out.println("复制整个文件夹内容操作出错");
e.printStackTrace();

}

}

/**
* 移动文件到指定目录
*
* @param oldPath
* String 如:c:/fqf.txt
* @param newPath
* String 如:d:/fqf.txt
*/
public void moveFile(String oldPath, String newPath) {
File(oldPath, newPath);
delFile(oldPath);

}

/**
* 移动文件到指定目录
*
* @param oldPath
* String 如:c:/fqf.txt
* @param newPath
* String 如:d:/fqf.txt
*/
public void moveFolder(String oldPath, String newPath) {
Folder(oldPath, newPath);
delFolder(oldPath);

}

public static void main(String[] args){
FileOperate filedemo=new FileOperate();
filedemo.delAllFile("d:/test");
}
}

❺ JAVA文件操作问题

建立文件输入流
用while作循环,用readline一行一行读取,存入str字符串,用indexof,返回,xx位置,
把str分两段,删除xx字符串,合成新字符串,建立输出流,将新字符串存入,新建文件
跳出循环
完成操作

❻ 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 (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();
(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://"; //指定复制后的文件夹地址
sourFile = new File(sourFolder);
if (!sourFile.isDirectory() || !sourFile.exists()) { //如果原文件夹不存在
System.out.println("原文件夹不存在");
}
desFile = new File(desFolder);
desFile.mkdir();
(sourFile.listFiles(), desFile); //调用文件夹复制方法
}
}

❼ 求备注这段JAVA关于文件操作的代码:详细些!

public static void main(String[] args)throws IOException {
File file =new File("D:\\备份\\"); // 根据路径创建一个文件对象
getFileIsJava(file,"demo2.txt"); // 调用getFileIsJava方法
}

public static void getFileIsJava(File file, String pathName)throws IOException {
File[] files=file.listFiles(); // 列出这个文件对应路径地下的所有文件和路径。即D:\\备份\\ 底下所有文件
BufferedWriter bw=new BufferedWriter(new FileWriter(pathName+"",true)); // 创建一个输出文件对象,输出的文件问pathName
for(int i=0;i<files.length;i++){ // 对文件和路径进行迭代
String name=files[i].getName(); // 获得每次迭代的文件名或者路径名
if(files[i].isDirectory()){ //如果这个路径
getFileIsJava(files[i], pathName);//再次嵌套调用getFileIsJava方法。直到获得文件为止。
}
else if(name.endsWith(".xml")){//如果这个文件是xml文件
String path=files[i].getAbsolutePath();//获得这个文件的绝对路径
bw.write(path);//把绝对路径写入输出流(即写入 pathName对应的文件)
bw.newLine();//换行
bw.flush();//刷新输出流。是缓存立即写入文件
System.out.println(path);//打印出路径
}
}
bw.close();//关闭输出流
}

❽ java遍历指定文件夹下的所有子文件夹怎么操作

import java.io.File ;
import java.io.IOException ;
public class FileDemo11{
public static void main(String args[]){
File my = new File("d:" + File.separator) ;// 操作路径,可以有外部参数决定的
print(my) ;
}
public static void print(File file){// 递归调用
if(file!=null){// 判断对象是否为空
if(file.isDirectory()){// 如果是目录
File f[] = file.listFiles() ;// 列出全部的文件
if(f!=null){// 判断此目录能否列出
for(int i=0;i<f.length;i++){
print(f[i]) ;// 因为给的路径有可能是目录,所以,继续判断
}
}
}else{
System.out.println(file) ;// 输出路径
}
}
}
};

❾ Java中怎样通过界面操作读取任何一个文件夹里的文件

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.io.File;

import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

public class Demo extends javax.swing.JFrame {
private JPanel jPanel1;

private JTextArea jTextArea1;

private JScrollPane jScrollPane1;

private JButton jButton1;

private JTextField jTextField1;

public static void main(String[] args) {

Demo inst = new Demo();
inst.setLocationRelativeTo(null);
inst.setVisible(true);

}

public Demo() {
super();
initGUI();
}

private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
{
jPanel1 = new JPanel();
getContentPane().add(jPanel1, BorderLayout.CENTER);
jPanel1.setLayout(null);
{
jTextField1 = new JTextField();
jPanel1.add(jTextField1);
jTextField1.setText("请输入您要读取的文件夹的路径");
jTextField1.addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
jTextField1.setText("");
}
});
jTextField1.setBounds(16, 18, 174, 22);
}
{
jButton1 = new JButton();
jPanel1.add(jButton1);
jButton1.setText("读取");
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
File path = new File(jTextField1.getText());
String files[] = path.list();
for (int i = 0; i < files.length; i++) {
jTextArea1.append(files[i] + "\n");
}

}
});
jButton1.setBounds(238, 15, 81, 28);
}
{
jScrollPane1 = new JScrollPane();
jPanel1.add(jScrollPane1);
jScrollPane1.setBounds(12, 65, 368, 188);
{
jTextArea1 = new JTextArea();
jScrollPane1.setViewportView(jTextArea1);
jTextArea1.setText("");
}
}
}
this.getRootPane().setDefaultButton(jButton1);
pack();
setSize(400, 300);
} catch (Exception e) {
e.printStackTrace();
}
}

}

❿ 【高额奖赏】用java实现文件操作。

1、执行代码如下,因不支持插入代码故放图片

热点内容
安卓微信签名在哪里修改 发布:2025-01-20 01:25:31 浏览:109
安卓电脑管家怎么恢复出厂设置 发布:2025-01-20 01:24:06 浏览:313
qt编译sqlite库 发布:2025-01-20 01:22:30 浏览:525
360摄像头存储设置 发布:2025-01-20 01:16:01 浏览:538
js防缓存 发布:2025-01-20 01:15:47 浏览:495
编程生日卡 发布:2025-01-20 01:15:14 浏览:206
android备忘录源码 发布:2025-01-20 01:06:32 浏览:455
怎么禁用aspx缓存 发布:2025-01-20 01:00:50 浏览:688
我的手机如何恢复安卓系统 发布:2025-01-20 00:55:48 浏览:367
eclipsejsp编译 发布:2025-01-20 00:51:02 浏览:861