『壹』 java 獲取一個文件夾內的各個文件大小並復制大於等於10k的文件
只需要使用遞歸就可以了
import java.io.File;
public class Demo {
public static void main(String[] args) {
File fileDir = new File("C:/Users/Administrator/Desktop/prex");
getFiles(fileDir);
}
public static void getFiles(File fileDir) {// 操作文件
if (!fileDir.exists()) {
new RuntimeException();
}
File[] files = fileDir.listFiles();
if (files != null) {// 判斷是否還有子目錄
for (int i = 0; i < files.length; i++) {
if (files[i].isFile() && files[i].length() == 10 * 1024) {// 判斷是文件,且大小為10k
files[i].renameTo(new File(// 轉存儲到指定的位置,名字和原來一樣
"C:/Users/Administrator/Desktop/", files[i]
.getName()));
} else {
getFiles(files[i]);// 遞歸調用,直到所有的文件都沒有了子目錄
}
}
}
}
}
『貳』 Java學習IO流之復制文件夾,遍歷文件夾
實現將一個目錄的所有內容復制到另一個目錄下。
復制文件與文件夾的思路不同,文件只需使用位元組流即可。但面對文件夾,其中包含文件與子文件夾,文件格式多樣。
首先,編寫復制單個文件的函數。只需傳入源文件和目標文件即可。
接著,設計復制整個文件夾的函數。此函數接受源文件夾和目標文件夾作為參數。
應注意,如果目標文件夾不存在,需先創建。
File對象適用於表示文件或文件夾。
採用遞歸方法,簡單直觀:若當前元素為文件,則直接復制;如為文件夾,則調用此復制文件夾方法,實現遍歷結構和樹狀展示。
『叄』 Java代碼拷貝文件夾 注:復制文件夾
Java代碼復制文件夾時,則需要利用Flie類在目標文件夾中創建相應的目錄,並且使用遞歸方法,代碼如下:
importjava.io.*;
/**
*復制文件夾或文件夾
*/
publicclassCopyDirectory{
//源文件夾
staticStringurl1="F:/photos";
//目標文件夾
staticStringurl2="D:/tempPhotos";
publicstaticvoidmain(Stringargs[])throwsIOException{
//創建目標文件夾
(newFile(url2)).mkdirs();
//獲取源文件夾當前下的文件或目錄
File[]file=(newFile(url1)).listFiles();
for(inti=0;i<file.length;i++){
if(file[i].isFile()){
//復制文件
File(file[i],newFile(url2+file[i].getName()));
}
if(file[i].isDirectory()){
//復制目錄
StringsourceDir=url1+File.separator+file[i].getName();
StringtargetDir=url2+File.separator+file[i].getName();
Directiory(sourceDir,targetDir);
}
}
}
//復制文件
publicstaticvoidFile(FilesourceFile,FiletargetFile)
throwsIOException{
//新建文件輸入流並對它進行緩沖
FileInputStreaminput=newFileInputStream(sourceFile);
BufferedInputStreaminBuff=newBufferedInputStream(input);
//新建文件輸出流並對它進行緩沖
FileOutputStreamoutput=newFileOutputStream(targetFile);
BufferedOutputStreamoutBuff=newBufferedOutputStream(output);
//緩沖數組
byte[]b=newbyte[1024*5];
intlen;
while((len=inBuff.read(b))!=-1){
outBuff.write(b,0,len);
}
//刷新此緩沖的輸出流
outBuff.flush();
//關閉流
inBuff.close();
outBuff.close();
output.close();
input.close();
}
//復制文件夾
publicstaticvoidDirectiory(StringsourceDir,StringtargetDir)
throwsIOException{
//新建目標目錄
(newFile(targetDir)).mkdirs();
//獲取源文件夾當前下的文件或目錄
File[]file=(newFile(sourceDir)).listFiles();
for(inti=0;i<file.length;i++){
if(file[i].isFile()){
//源文件
FilesourceFile=file[i];
//目標文件
FiletargetFile=newFile(newFile(targetDir).getAbsolutePath()+File.separator+file[i].getName());
File(sourceFile,targetFile);
}
if(file[i].isDirectory()){
//准備復制的源文件夾
Stringdir1=sourceDir+"/"+file[i].getName();
//准備復制的目標文件夾
Stringdir2=targetDir+"/"+file[i].getName();
Directiory(dir1,dir2);
}
}
}
}
『肆』 文件夾F:\\txt中有很多txt文件,用java隨機讀取一個txt文件,然後將之復制粘貼到D:\\txt中。
import java.io.File;
public class FileTest {
public static void main(String[] args) {
File files = new File("F:\\txt\\");
File file[] = files.listFiles();//獲得目錄中的文件及子目錄信息
int i = (int) (Math.random()*file.length);
fun(file,i);
}
public static void fun(File file[],int i){
if(file[i].exists()){//如果文件存在
String name = file[i].getName();//獲取文件名
if(file[i].isFile()&&name.endsWith(".txt")){ //如果是文件並且後綴名為.txt
File dest = new File("D:\\txt\\"+file[i].getName());
file[i].renameTo(dest);
}
else{
int j = (int) (Math.random()*file.length);
fun(file,j);
}
}else{
int j = (int) (Math.random()*file.length);
fun(file,j);
}
}
}
『伍』 java中怎樣按位元組讀取文件並復制到另一個文件夾
這里以位元組流,FileOutputStream為例。代碼例子如下:
importjava.io.File;
/**
*把一個文件夾中的文件復制到一個指定的文件夾
*@authoryoung
*
*/
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
publicclassCopyFile{
publicstaticvoidmain(String[]args){
/*指定源exe文件的存放路徑*/
Stringstr="f:/jdk-1_5_0_06-windows-i586-p.exe";
/*指定復制後的exe的目標路徑*/
Stringstrs="e:/.exe";
/*創建輸入和輸出流*/
FileInputStreamfis=null;
FileOutputStreamfos=null;
try{
/*將io流和文件關聯*/
fis=newFileInputStream(str);
fos=newFileOutputStream(strs);
byte[]buf=newbyte[1024*1024];
intlen;
while((len=fis.read(buf))!=-1){
fos.write(buf,0,len);
}
}catch(FileNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}finally{
try{
fis.close();
fos.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}
『陸』 java 編寫程序,拷貝一個帶內容的文件夾。 例如:將c:\program files\java 文件夾拷貝到D盤的根目錄下
一、復制文件代碼
print?import java.io.*;
import java.util.*;
class Copy
{
static void (String from,String to) throws IOException
{
BufferedReader in=new BufferedReader(new FileReader(from));
BufferedWriter out=new BufferedWriter(new FileWriter(new File(to)));
String line=null;
while((line=in.readLine())!=null)
{
out.write(line+"\n");
}
in.close();
out.close();
}
public static void main(String[] args) throws IOException
{
Scanner sc=new Scanner(System.in);
System.out.print("請輸入文件路徑:");
String from=sc.next();
System.out.print("請輸入拷貝路徑:");
String to=sc.next();
(from,to);
}
}
import java.io.*;
import java.util.*;
class Copy
{
static void (String from,String to) throws IOException
{
BufferedReader in=new BufferedReader(new FileReader(from));
BufferedWriter out=new BufferedWriter(new FileWriter(new File(to)));
String line=null;
while((line=in.readLine())!=null)
{
out.write(line+"\n");
}
in.close();
out.close();
}
public static void main(String[] args) throws IOException
{
Scanner sc=new Scanner(System.in);
System.out.print("請輸入文件路徑:");
String from=sc.next();
System.out.print("請輸入拷貝路徑:");
String to=sc.next();
(from,to);
}
}
二、復制文件夾代碼 https://wenku..com/view/2fedc744f7ec4afe04a1df37.html
『柒』 java如何拷貝一個文件夾內的多個指定的文件到另外一個指定的文件夾下
你好:
請看代碼:
/**
*把一個文件夾里的所有文件包括文件夾一並原樣拷貝到另一個目錄中;
*@authorshuishui
*/
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.OutputStream;
publicclassCopyDir001{
publicstaticFiledirFrom;
publicstaticFiledirTo;
//目標路徑創建文件夾
publicvoidlistFileInDir(Filefile){
File[]files=file.listFiles();
for(Filef:files){
Stringtempfrom=f.getAbsolutePath();
Stringtempto=tempfrom.replace(dirFrom.getAbsolutePath(),
dirTo.getAbsolutePath());//後面的路徑替換前面的路徑名
if(f.isDirectory()){
FiletempFile=newFile(tempto);
tempFile.mkdirs();
listFileInDir(f);
}else{
System.out.println("源文件:"+f.getAbsolutePath());
//
intendindex=tempto.lastIndexOf("\");//找到"/"所在的位置
StringmkdirPath=tempto.substring(0,endindex);
FiletempFile=newFile(mkdirPath);
tempFile.mkdirs();//創建立文件夾
System.out.println("目標點:"+tempto);
(tempfrom,tempto);
}
}
}
/**
*封裝好的文件拷貝方法
*/
publicvoid(Stringfrom,Stringto){
try{
InputStreamin=newFileInputStream(from);
OutputStreamout=newFileOutputStream(to);
byte[]buff=newbyte[1024];
intlen=0;
while((len=in.read(buff))!=-1){
out.write(buff,0,len);
}
in.close();
out.close();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args){
Filefromfile=newFile("e:\shui\test");//源文件夾
Filetofile=newFile("e:\Jying\shui");//目標
CopyDir001=newCopyDir001();
//設置來源去向
.dirFrom=fromfile;
.dirTo=tofile;
.listFileInDir(fromfile);
}
}
『捌』 java如何拷貝文件到另一個目錄下
下面列舉出4種方式:
1、使用FileStreams復制
這是最經典的方式將一個文版件的內容復制到另一個文件中。 使用權FileInputStream讀取文件A的位元組,使用FileOutputStream寫入到文件B。正如你所看到的我們執行幾個讀和寫操作try的數據,所以這應該是一個低效率的,下一個方法我們將看到新的方式。 這是第一個方法的代碼: