當前位置:首頁 » 文件管理 » 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 03:41:44 瀏覽:690
linux字體查看 發布:2025-01-20 03:41:30 瀏覽:742
pythonextendor 發布:2025-01-20 03:40:11 瀏覽:199
為什麼安卓手機儲存越來越少 發布:2025-01-20 03:40:07 瀏覽:925
演算法和人性 發布:2025-01-20 03:28:31 瀏覽:473
軟體編程1級 發布:2025-01-20 03:19:39 瀏覽:952
嫁個編程男 發布:2025-01-20 02:51:39 瀏覽:933
掛勞文件夾 發布:2025-01-20 02:44:22 瀏覽:521
寫編程英文 發布:2025-01-20 02:37:50 瀏覽:16
安卓怎麼修改飢荒 發布:2025-01-20 02:20:54 瀏覽:619