package com.imti.work.cla;
import java.awt.FlowLayout;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
/** 多个文件的合并。 */
public class FileMerge extends JFrame implements ActionListener
{
private static final long serialVersionUID = -7749716816572931666L;
private JMenuBar bar = new JMenuBar();
private JMenu menu = new JMenu("文件");
private JMenuItem chooseFolder = new JMenuItem("选择文件夹");
private JLabel label = new JLabel("输入最终文件名:");
private JTextField textfield = new JTextField(12);
private JButton button = new JButton("合并");
private JTextArea area = new JTextArea();
//文件扩展名
private JLabel filter = new JLabel("输入文件扩展名(如:.txt):");
private JTextField filterEdit = new JTextField(12);
private String path = null;
//文件夹下所有的以结尾的文件。
private ArrayList<String> fileNames = null;
/** 构造方法 */
public FileMerge()
{
this.setTitle("文件合并工具");
this.setBounds(new Rectangle(520, 350));
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());
chooseFolder.addActionListener(this);
menu.add(chooseFolder);
bar.add(menu);
this.add(bar);
this.add(label);
this.add(textfield);
button.addActionListener(this);
this.add(button);
this.add(filter);
this.add(filterEdit);
area.setColumns(60);
area.setRows(15);
area.setLineWrap(true);
area.setWrapStyleWord(true);
JScrollPane jsp = new JScrollPane(area);
jsp.setVisible(true);
this.add(jsp);
this.pack();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource().equals(chooseFolder))
{
if("".equals(filterEdit.getText()))
{
JOptionPane.showMessageDialog(this, "输入文件扩展名!","提示",JOptionPane.OK_OPTION);
return;
}
//打开文件夹。
JFileChooser filechooser = new JFileChooser();
filechooser.setDialogType(JFileChooser.DIRECTORIES_ONLY);
filechooser.setDialogTitle("选择一个文件夹");
filechooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int res = filechooser.showOpenDialog(this);
if(res == JFileChooser.APPROVE_OPTION)
{
path = filechooser.getSelectedFile().getAbsolutePath();
if(!"".equals(path) && null != path)
{
area.setText("");
fileNames = new ArrayList<String>();
area.append("文件夹位置:"+path+"/n");
getFiles(path);
for(int i = 0;i < fileNames.size();i++)
{
area.append(fileNames.get(i)+"/n");
}
area.append("总共包含"+fileNames.size()+"个"+filterEdit.getText()+"文件/n");
}
else
{
JOptionPane.showMessageDialog(this, "请选择一个正确的文件夹!","提示",JOptionPane.OK_OPTION);
return;
}
}
}
else if(e.getSource().equals(button))
{
//执行合并操作。
if(null == path)
{
JOptionPane.showMessageDialog(this, "请选择文件夹!","提示",JOptionPane.OK_OPTION);
return;
}
if("".equals(textfield.getText()))
{
JOptionPane.showMessageDialog(this, "输入最终文件名!","提示",JOptionPane.OK_OPTION);
return;
}
else if("".equals(filterEdit.getText()))
{
JOptionPane.showMessageDialog(this, "输入文件扩展名!","提示",JOptionPane.OK_OPTION);
return;
}
else
{
if(null != path)
{
File file = null;
BufferedReader br = null;
FileOutputStream fos = null;
try
{
//要保存到的位置。
file = new File(path+"//"+textfield.getText());
fos = new FileOutputStream(file,true);
for(int i = 0;i < fileNames.size();i++)
{
String filename= fileNames.get(i);
br = new BufferedReader(new FileReader(filename));
String temp = null;
while((temp = br.readLine()) != null)
{
fos.write(temp.getBytes());
fos.write("/r/n".getBytes());
}
br.close();
fos.flush();
}
fos.close();
} catch (IOException e1)
{
e1.printStackTrace();
}
JOptionPane.showMessageDialog(this, "合并完成!","提示",JOptionPane.INFORMATION_MESSAGE);
}
}
}
}
//取得文件夹下所有的以.java结尾的文件。
public void getFiles(String path)
{
File file = new File(path);
//如果是文件夹。
if(file.isDirectory())
{
File[] files = file.listFiles();
for(File f :files)
{
//如果是文件,保存文件名。
if(f.isFile() && f.getName().endsWith(filterEdit.getText()))
{
fileNames.add(f.getPath());
}
else
{
getFiles(f.getAbsolutePath());
}
}
}
}
/**
* @param args
*/
public static void main(String[] args)
{
new FileMerge();
}
}
相关推荐
在IT行业中,文件合并是一项常见的任务,特别是在大数据处理、日志分析、文本处理等领域。本文将详细介绍如何实现文件合并,特别是对于大文件的合并,并提供一个基于VC++的实现示例,供学习参考。 文件合并的基本...
【文件合并器】是一款基于易语言开发的简单实用工具,主要功能是调用Windows系统内置的`copy/b`命令来实现多个文件的合并操作。在IT行业中,文件合并是一项常见的需求,例如在处理大型文本数据、整合代码文件或制作...
当我们面临需要将两个或多个BIN文件合并成一个单一文件的场景时,"二进制bin文件合并工具"就显得尤为重要。 标题所提到的"二进制bin文件合并工具"是一种专门用于处理这种情况的应用程序,它能够将两个独立的BIN文件...
在某些应用场景下,例如嵌入式系统开发或者固件更新,可能需要将多个BIN文件合并成一个单一的文件,以方便管理和传输。在本例中,"两个bin文件合并成1个bin文件UBIN.zip"的描述,正是指的这样一个过程。 要理解这个...
"BIN文件合并工具"是一款专为处理BIN文件而设计的小型实用程序,它允许用户将多个BIN文件整合到一个单一的文件中。BIN文件是一种二进制格式,通常用于存储CD或DVD镜像数据,或者作为某些软件安装程序的基础。这款...
"bin文件合并"是解决这一问题的关键技术,它允许我们将Bootloader和App的BIN文件整合成一个单一的BIN文件,以便于一次性烧录。本文将深入探讨这个过程,以及如何使用C语言实现这个功能。 首先,我们要理解BIN文件的...
标题 "TDMS 文件合并 labview代码" 涉及到的是使用LabVIEW编程语言来处理TDMS(TDM Streaming)文件的合并操作。TDMS文件是National Instruments公司的LabVIEW环境中用于存储时间序列数据的一种标准格式,它允许用户...
这个名为"文件分割器(自带bat文件合并文件).rar"的压缩包中,包含了文件分割器软件以及相关的批处理(BAT)文件,用于合并已经分割的文件。批处理文件是一种基于DOS命令的简单脚本,能够自动执行一系列操作,比如...
文件切割后,有时我们需要将这些小文件恢复成原始的大文件,这就需要用到文件合并。合并文件同样可以在Java中通过`FileInputStream`和`FileOutputStream`完成。 2. **Java实现文件合并**: 以下是一个简单的文件...
在"多文件合并工具filemerging"的压缩包中,我们只有一个名为"多文件合并工具filemerging"的文件,这可能是一个可执行程序,用于执行文件合并操作。为了使用这个工具,用户通常需要解压文件,然后运行这个程序,按照...
DXF文件合并工具是一款专为32位操作系统设计的应用程序,其主要功能是将多个DXF(Drawing Exchange Format)文件整合成一个单一的文件。DXF是一种由Autodesk开发的文件格式,主要用于CAD(计算机辅助设计)软件之间...
CSV文件合并工具是一种实用软件,专门设计用于处理CSV(逗号分隔值)文件,并能够将这些文件转换成Microsoft Excel的XLSX格式。CSV文件是数据存储的常见格式,因其简洁、通用而广泛应用于数据交换。然而,当需要管理...
STM32升级工具是专为STM32微控制器设计的一款实用程序,主要功能是将多个BIN文件合并成一个,便于单片机的固件更新。STM32是基于ARM架构的微控制器,广泛应用于嵌入式硬件系统,因其高性能、低功耗的特点而在电子...
《WPS Excel JS宏实现的文件合并工具详解》 在日常办公中,处理大量Excel表格时,合并工作是一项常见的任务。传统的手动合并方法效率低下,容易出错。为了解决这一问题,WPS Office提供了使用JavaScript(简称JS)...
应用场景:使用pandas把多个相同结构的Excel文件合并为一个。 原始数据: 相关代码: import os import pandas as pd # 将文件读取出来放一个列表里面 pwd = 'test' # 获取文件目录 # 新建列表,存放文件名 ...
bin二进制文件合并工具
CSV文件批量合并工具(批量合并多个CSV文件)是一款简洁好用,绿色小巧的CSV文件合并工具。CSV文件批量合并工具非常的使用,让你能够更轻松快捷的进行CSV文件合并工作,非常方便。可以同时批量合并多个CSV文本文件,...
单纯用vb实现的wav文件合并,两个文件要有相同的码率,采样位数,声道等等,总之就是两个正常大小的文件合并是可以的,只要两个文件的总大小小于2GB,那就可以了.这个纯vb6实现,像一般的几十兆的wav文件合并,还是很快的,...
这通常需要使用特定的工具或软件,例如"文件合并助手.exe"。下面,我们将深入探讨这个过程以及相关的知识点: 1. BIN文件结构:BIN文件是一个二进制文件,包含光盘的原始数据流,包括文件系统、文件内容和可能的...
将三个二进制文件合并为一个bin文件,并间隔2k增加crc校验。 运行:双击mergefile.exe 执行合并:将文件dfu_setting.dat+APP1.bin+APP2.bin 合并为MERGE_ota.bin MERGE_ota.bin头部有各个文件合并的起始位置和长度...