Java缩容代码 java缩进是什么意思

求一个JAVA的压缩程序源代码 。package com.io2.homework;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/*压缩文件夹*/
public class MyMultipleFileZip
{
private String currentZipFilePath = "F:/MyZip.zip";
private String sourceFilePath;
private ZipOutputStream zos;
private FileInputStream fis;
public MyMultipleFileZip(String sourceFilePath)
{
try
{
this.sourceFilePath = sourceFilePath;
zos = new ZipOutputStream(new FileOutputStream(currentZipFilePath));
//设定文件压缩级别
zos.setLevel(9);
} catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
// 在当前条目中写入具体内容
public void writeToEntryZip(String filePath)
{
try
{
fis = new FileInputStream(filePath);
} catch (FileNotFoundException e1)
{
e1.printStackTrace();
}
byte[] buff = new byte[1024];
int len = 0;
try
{
while ((len = fis.read(buff)) != -1)
{
zos.write(buff, 0, len);
}
} catch (IOException e)
{
e.printStackTrace();
}finally
{
if (fis != null)
try
{
fis.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
// 添加文件条目
public void addFileEntryZip(String fileName)
{
try
{
zos.putNextEntry(new ZipEntry(fileName));
} catch (IOException e)
{
e.printStackTrace();
}
}
public void addDirectoryEntryZip(String directoryName)
{
try
{
zos.putNextEntry(new ZipEntry(directoryName"/"));
} catch (IOException e)
{
e.printStackTrace();
}
}
// 遍历文件夹
public void listMyDirectory(String filePath)
{
File f = new File(filePath);
File[] files = f.listFiles();
if(files!=null)
{
for (File currentFile : files)
{
// 设置条目名称(此步骤非常关键)
String entryName= currentFile.getAbsolutePath().split(":")[1].substring(1);
// 获取文件物理路径
String absolutePath = currentFile.getAbsolutePath();
if (currentFile.isDirectory())
{
addDirectoryEntryZip(entryName);
//进行递归调用
listMyDirectory(absolutePath);
}
else
{
addFileEntryZip(entryName);
writeToEntryZip(absolutePath);
}
}
}
}
// 主要流程
public void mainWorkFlow()
{
listMyDirectory(this.sourceFilePath);
if(zos!=null)
try
{
zos.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
new MyMultipleFileZip("F:/fountainDirectory").mainWorkFlow();
}
}
import java.util.Arrays; import java.util.Scanner; public class//这是数组扩容的思想,存入新值,还要保证老数组顺序不变:按照你的思想一一注释了!
import java.util.Arrays;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int index = -1;//索引
String num, zf[] = new String[] { "a", "c", "u", "b", "e", "p", "f", "z" }, newArr[];
System.out.print("原字符序列:"Arrays.toString(zf));
Scanner input = new Scanner(System.in);
Arrays.sort(zf);// 排序
System.out.print("\n升序排序后:"Arrays.toString(zf));
System.out.println("\n带插入的字符是:");
num = input.nextLine().substring(0, 1);//输入待添加的字符!
newArr = new String[zf.length1];//新建一个临时数组,比老数组大一个单位长度!
for (int i = 0; izf.length; i) {//循环遍历,找出添加值应该存放的索引位置!
if (num.compareTo(zf[i]) = 0) {//依次对比,如果发现小于等于就是合适的位置
index = i;//用临时索引记录该位置,并跳出循环!
break;
}
}
//遍历老数组,把值一一对应存放在新数组里面,此刻新数组会空出一个位置来!
for (int i = 0; izf.length; i) {
newArr[i] = zf[i];
}
//倒序遍历新数组,依次把值向后移动,一直移到目标索引位置就不在移动了!
for (int i = newArr.length - 1; iindex; i--) {
newArr[i] = newArr[i - 1];
}
//目标索引位置此刻是一个空值,把对应前面输入的字符串存放进去即可!
newArr[index] = num;
System.out.println("原数组:"Arrays.toString(zf));
System.out.println("现数组:"Arrays.toString(newArr));
}
}
总结一下:这种做法可以帮你理解数组扩容,缩容的思想,理解就可以了,API里面也是大概这么写的
只是更细致一些!
如果是作业:你不妨换个思路,新建一个数组比旧数组长度大一个单位就可以了
暂时不用排序,直接把你想要添加的值,存放在数组最后一个位置,其他值按照老数组赋值就可以了
最后在排序,是不是很简单呢?
如果你愿意还可以把老数组指向新数组引用,这样老数组就丢弃了!
java语言中的数组缩容您好Java缩容代码!很高兴为您解答Java缩容代码,这儿贴出代码,不懂问Java缩容代码我吧
int[] oldArray = {1,2,3,4,5,6,7,8,9,10};
int[] newArray = new int[5];
System.arraycopy(oldArray, 0, newArray, 0, 5);
System.out.println(Arrays.toString(newArray));
【Java缩容代码 java缩进是什么意思】Java缩容代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java缩进是什么意思、Java缩容代码的信息别忘了在本站进行查找喔 。

    推荐阅读