⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2006110218220812234.txt

📁 可以进行文件分割和合并 可以进行文件分割和合并
💻 TXT
📖 第 1 页 / 共 2 页
字号:
					count.setEnabled(false);
					numberF.setForeground(new Color(255, 0, 0));
					lengthF.setForeground(new Color(0, 0, 0));
					flag2 = "numberF";
				}
			}
			////////当为取消按钮时///
			if (e.getActionCommand() == "取消") {
				numIn.setText("");
				source.setText("");
				saveAs.setText("");
				strOF = null;
				fileN = 0;
			}
		}
	}

	///////原文件文本框事件类////
	class TextAction1 implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			String str = source.getText();
			str = str.replace("\\", "/");
			File aimFile = new File(str);
			if (aimFile.exists()) {
				if (aimFile.isDirectory()) {//当为文件夹时
					File[] aimFiles = aimFile.listFiles();
					String[] strFiles = new String[aimFile.listFiles().length];
					for (int i = 0; i < aimFile.listFiles().length; i++)
						strFiles[i] = aimFiles[i].getName();
					helpText.setText("文件夹名称:" + aimFile.getName() + "\n子文件:\n");
					for (int i = 0; i < aimFile.listFiles().length; i++)
						helpText.append(strFiles[i] + "\n");
					addTFs.setEnabled(false);
				}
				if (aimFile.isFile()) {//当为文件时
					helpText.setText("该目标是一个文件\n文件夹名称:\n" + aimFile.getName()
							+ "\n文件大小:" + aimFile.length() + "Bytes\n"
							+ new Date(aimFile.lastModified()));
					addTFs.setEnabled(false);
				}
			} else {
				helpText.setText("\n\n    找不到该文件!!\n");
			}
		}
	}

	//////数字输入框事件类////////
	class TextAction2 implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			if (flag2 == "numberF") {
				try {
					number = Integer.parseInt(numIn.getText());
					ensure.setEnabled(true);
					cancel.setEnabled(true);
				} catch (Exception e1) {
					helpText.setText("\n\n     输入错误!");
				}
			} else if (Double.parseDouble(numIn.getText()) > 0)
				;
			{
				ensure.setEnabled(true);
				cancel.setEnabled(true);
			}
			if (Double.parseDouble(numIn.getText()) < 0) {
				ensure.setEnabled(false);
				cancel.setEnabled(true);
				cancel.setToolTipText("分割块数目必须是正整数");
			}
		}
	}

	///确认按钮事件类///
	class QuerenButtonAction implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			try{
				aJProgressBar.setIndeterminate(true);
				if (flag1 == "分割" && flag2 == "lengthF") {
				cutFile("lengthF");
			}
			if (flag1 == "分割" && flag2 == "numberF") {
				cutFile("numberF");
			} else if (flag1 == "合并") {
				unionFiles();
			}
			fileN = 0;
			
			}catch(Exception e1){helpText.setText("\n\n未知错误!!");}
			aJProgressBar.setIndeterminate(false);
		}

		/////////文件分割函数///
		private void cutFile(String string) {
			int fileSize = 0;
			int fileNum = 0;
			helpText.setText("\n分割开始...\n");
			sourceFile = new File(source.getText().replace("\\", "/"));
			aJProgressBar.setMaximum((int) sourceFile.length());
			if (string == "lengthF") {/////按文件长度分割	
				if (count.getSelectedItem() == "Mb")
					fileSize = (int) (Float.parseFloat(numIn.getText()) * 1024 * 1024);
				if (count.getSelectedItem() == "Kb")
					fileSize = (int) (Float.parseFloat(numIn.getText()) * 1024);
				if (count.getSelectedItem() == "b")
					fileSize = (int) (Float.parseFloat(numIn.getText()));
				fileNum = (int) (sourceFile.length() / fileSize);
				if (sourceFile.length() % fileSize != 0) {
					fileNum++;
				}
			}
			if (string == "numberF") {
				fileNum = Integer.parseInt(numIn.getText());
				fileSize = ((int) (sourceFile.length() / fileNum)) + 1;
			}
			File[] newFile = new File[fileNum];
			try {
				
				int count = 0;
				int i = 0;
				byte[] bueff = new byte[fileSize];
				FileOutputStream out = null;
				FileInputStream in = new FileInputStream(sourceFile);
				File f = new File(saveAs.getText().replace("\\", "/"));
				if (!f.exists())
					f.createNewFile();
				for (i = 0; i < newFile.length; i++) {
					helpText.append("正在创建第" + (i + 1) + "个文件...\n");
					newFile[i] = new File(saveAs.getText().replace("\\", "/"),
							 sourceFile.getName()+"(" + i + ")" );
				}
				i = 0;
				while ((count = in.read(bueff, 0, fileSize)) != -1) {
					helpText.append("正在写入第" + (i + 1) + "个文件...\n");
					out = new FileOutputStream(newFile[i]);
					out.write(bueff, 0, count);
					out.close();
					i++;
				}
				in.close();
				helpText.append("\n\n\n   分割成功!!");
			} catch (Exception e) {
				helpText.append("\n\n\n     分割失败!!");

			}
		}

		////////////文件合并函数///////
		private void unionFiles() {
			File outFile = new File(saveAs.getText());//输出流的目标文件
			if (outFile.isDirectory())
				outFile = new File(outFile, "union");
			FileInputStream in = null;//输入流
			FileOutputStream out;//输出硫 
			byte[] buff = new byte[1024];//用于读写,相当一个缓冲区
			int count;//用于判断
			helpText.setText("合并开始\n");
			File yuanwenjian = new File(source.getText());
			/////当原文件与保存的文件都是不是文件夹时///
			if (yuanwenjian.isFile() && new File(saveAs.getText()).isFile()
					&& fileN == 0) {
				try {
					out = new FileOutputStream(outFile, true);//创建输出硫
					in = new FileInputStream(yuanwenjian);//创建输入流
					while ((count = in.read(buff, 0, 1024)) != -1) {
						out.write(buff, 0, count);
					}
					in.close();
					out.close();
					helpText.append("\n\n\n   合并成功!!");
				} catch (Exception e) {
					helpText.append("\n\n\n   合并失败!!");
				}
			} else {
				try {
					if (yuanwenjian.isDirectory())
						unionFiles = yuanwenjian.listFiles();//要合并的文件夹中的文件
					else {//通过添加按钮而要合并的文件
						unionFiles = new File[fileN];
						for (int i = 0; i < fileN; i++) {
							helpText.append("正在创建第" + (i + 1) + "个文件...\n");
							unionFiles[i] = new File(strOF[i]);
						}
					}
					out = new FileOutputStream(outFile);
					for (int i = 0; i < unionFiles.length; i++)//以每个文件为输入流
					{
						helpText.append("正在读入第" + (i + 1) + "个文件...\n");
						in = new FileInputStream(unionFiles[i]);
						while ((count = in.read(buff, 0, 1024)) != -1) {
							out.write(buff, 0, count);
						}
						in.close();
					}
					out.close();
					helpText.append("\n\n\n   合并成功!!");
				} catch (Exception e) {
					helpText.append("\n\n\n   合并失败!!");
				}
			}
		}

	}
	////下部浏览按钮事件类,显示文件选择器///
	class LiulanAction2Performed implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			JFileChooser df = new JFileChooser();
			df.setDialogTitle("共享文件或文件夹");
			df.setVisible(true);
			if (flag1 == "分割")
				df.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
			if (flag1 == "合并")
				df.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
			df.showSaveDialog(new JPanel());
			String file = df.getSelectedFile().toString();
			saveAs.setText(file);
		}
	}

	////////上部浏览按钮事件类,显示文件对话框////
	class LiulanAction1Performed implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			try{
			JFileChooser df = new JFileChooser("要分割或合并的文件");
			if (flag1 == "分割")
				df.setFileSelectionMode(JFileChooser.FILES_ONLY);
			if (flag1 == "合并")
				df.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
			df.showSaveDialog(new JPanel());
			df.setVisible(true);
			source.setText(df.getSelectedFile().toString());
			if (df.getSelectedFile().isDirectory()) {//当为文件夹时
				File[] aimFiles = df.getSelectedFile().listFiles();
				String[] strFiles = new String[df.getSelectedFile().listFiles().length];
				for (int i = 0; i < df.getSelectedFile().listFiles().length; i++)
					strFiles[i] = aimFiles[i].getName();
				helpText.setText("文件夹名称:" + df.getSelectedFile().getName()
						+ "\n子文件:\n");
				for (int i = 0; i < df.getSelectedFile().listFiles().length; i++)
					helpText.append(strFiles[i] + "\n");
				addTFs.setEnabled(false);
			}
			if (df.getSelectedFile().isFile()) {//当为文件时
				helpText.setText("该目标是一个文件\n文件夹名称:\n"
						+ df.getSelectedFile().getName() + "\n文件大小:"
						+ df.getSelectedFile().length() + "Bytes\n"
						+ new Date(df.getSelectedFile().lastModified()));
				addTFs.setEnabled(true);
			}
		}catch(Exception ex){helpText.setText("\n  找不到指定文\n件或文件夹");}
		}
	}

	/////////添加按钮事件类///////
	class addTFsActionL implements ActionListener {

		public void actionPerformed(ActionEvent e) {
			strOF[fileN++] = source.getText();
			helpText.setText("将要合并的文件:\n");
			for (int i = 0; i < fileN; i++)
				helpText.append(new File(strOF[i]).getName() + "\n");
		}

	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -