獲取文件夾的長(zhǎng)度
private static Long getFileLength(File file) {
long len = 0;
File[] subLists = file.listFiles();
for (File subFile : subLists) {
if(subFile.isFile()){
len += subFile.length();
}else{
len +=getFileLength(subFile);
}
}
return len;
}
刪除文件夾下的所有目錄
public static void deleteDirectory(File file){
File[] subLists = file.listFiles();
for (File subFile : subLists) {
if(subFile.isDirectory()){
deleteDirectory(subFile);
}else if(subFile.isFile()){
? subFile.delete();
}else {
}
}
file.delete();
}
拷貝目錄文件夾
public static void main(String[] args) throws IOException {
// 1、創(chuàng)建于目標(biāo)文件相同的源文件夾
File dir = new File("ccc");
boolean flg =dir.mkdir();
copyFile(new File("aaa"), dir);
// 2、獲取原文件夾中所有的文件和文件夾
// 3、遍歷數(shù)組,如果是文件就用IO流讀寫(xiě)
// 4、如果是文件夾就遞歸調(diào)用
}
public static void copyFile(File originFile,File destFile) throws IOException{
File[] fileList = originFile.listFiles();
for (File subFile : fileList) {
if(subFile.isDirectory()){
File subDestFile = new File(destFile.getAbsolutePath()+"\\"+subFile.getName());
subDestFile.mkdir();
copyFile(subFile, subDestFile);
}else if(subFile.isFile()){
FileInputStream fis = new FileInputStream(subFile);
FileOutputStream fos = new FileOutputStream(destFile.getAbsolutePath()+"\\"+subFile.getName());
int len = 0;
byte[] arr = new byte[1024];
while((len = fis.read(arr))!= -1){
fos.write(arr, 0, len);
}
fis.close();
fos.close();
}
}
}
按照層級(jí)打印
public static void printFileName(File file,int level){
File[] fileLists = file.listFiles();
for (File subFile : fileLists) {
for (int i = 0; i < level; i++) {
System.out.print("\t");
}
System.out.println(subFile);
if(subFile.isDirectory())
printFileName(subFile, level+1);
}
}
}
斐波拉契數(shù)列
public class Demo_Rabbit {
public static void main(String[] args) {
System.out.println(getNewRabbit(6));
}
public static int? getNewRabbit(int num){
if(num == 1){
return 1;
}else if(num ==2){
return 1;
}else{
return getNewRabbit(num-1)+getNewRabbit(num-2);
}
}
}
1000的階乘問(wèn)題
約瑟夫環(huán)
import java.util.ArrayList;
public class Demo_LuckNum {
public static void main(String[] args) {
System.out.println(getLuckNum(8));
}
public static int getLuckNum(int num){
ArrayList<Integer> list = new ArrayList<>();
for (int i = 1; i <= num; i++) {
list.add(i);
}
//去除零
int count = 1;
for (int i = 0; list.size()!=1; i++) {
if(i == list.size()){
i = 0;
}
if(count%3 == 0 ){
list.remove(i--);
}
count++;
}
return list.get(0);
}
}