Java 拆分两个文件

Java 拆分两个文件,java,android,linux,unzip,unrar,Java,Android,Linux,Unzip,Unrar,我使用这个Linux命令在android中合并了两个文件 cat file1.png file2.zip>file3.png 如何再次拆分两个文件?我只想单独检索zip文件 有什么特别的命令吗?我试过这些代码: 解压缩文件3.png 将png替换为zip: 解压缩文件3.zip 但它们都不起作用。 我唯一可以打开组合的应用程序是windows上的winrar 我还在android上尝试了几个解压和解压的应用程序,但除了rarlab的RAR应用程序外,它们都不起作用 我提到的那些应用程序是否有任何

我使用这个Linux命令在android中合并了两个文件

cat file1.png file2.zip>file3.png

如何再次拆分两个文件?我只想单独检索zip文件

有什么特别的命令吗?我试过这些代码:

解压缩文件3.png

将png替换为zip:

解压缩文件3.zip

但它们都不起作用。 我唯一可以打开组合的应用程序是windows上的winrar

我还在android上尝试了几个解压和解压的应用程序,但除了rarlab的RAR应用程序外,它们都不起作用


我提到的那些应用程序是否有任何源代码来解压缩文件?

您需要知道的是,PNG文件以十六进制值
0x89
开头,然后是文本
PNG
。Zip文件以
PK 0x04 0x03
开头。您可以编写一个实用程序,当检测到某个文件签名时,使用新的输出文件读取文件并将读入的字节输出到新文件

对于一种解决方案,您可以使用
vim
,但必须小心阻止
vim
在行尾添加换行符

为安全起见,请复制输入文件

cp file3.png f1
cp file3.png f2

vim -b f1
和vim类型

:set noeol
搜索zip文件的开头

/PK
检查找到的序列是否为
PK^C^D
。如果没有,寻找下一场比赛

使用删除
PK
中的行尾

d$
向下移动一行,删除文件的其余部分并保存

j
:.,$ d
ZZ
类似地,删除f2中文件的顶部以获得zip文件


注意:不要将f2命名为f2.zip,因为vim足够聪明,可以将其作为zip文件打开,这不是您想要的。

您需要知道的是,PNG文件以十六进制值
0x89
开头,后跟文本
PNG
。Zip文件以
PK 0x04 0x03
开头。您可以编写一个实用程序,当检测到某个文件签名时,使用新的输出文件读取文件并将读入的字节输出到新文件

对于一种解决方案,您可以使用
vim
,但必须小心阻止
vim
在行尾添加换行符

为安全起见,请复制输入文件

cp file3.png f1
cp file3.png f2

vim -b f1
和vim类型

:set noeol
搜索zip文件的开头

/PK
检查找到的序列是否为
PK^C^D
。如果没有,寻找下一场比赛

使用删除
PK
中的行尾

d$
向下移动一行,删除文件的其余部分并保存

j
:.,$ d
ZZ
类似地,删除f2中文件的顶部以获得zip文件


注意:不要将f2命名为f2.zip,因为vim足够聪明,可以将其作为zip文件打开,这不是您在这里想要的。

严格来说:没有办法

在上面的答案中,您可能会将PK 0x04 0x03作为分隔符,但无法保证该字符序列也不会显示在file1.png的图像数据中


总之,这是一个有趣的问题。如果您想定期拆分这样的文件,请重新考虑您的策略。如果你需要它来纠正一个一次性的错误或什么的,你可以分开找到分离器,并在99%以上的情况下都可以

严格地说:没有办法

在上面的答案中,您可能会将PK 0x04 0x03作为分隔符,但无法保证该字符序列也不会显示在file1.png的图像数据中


总之,这是一个有趣的问题。如果您想定期拆分这样的文件,请重新考虑您的策略。如果你需要它来纠正一个一次性的错误或什么的,你可以分开找到分离器,并在99%以上的情况下都可以

我不确定您试图通过将zip文件“隐藏”到PNG中来实现什么,但如果您试图使Winrar可以打开单个文件,那么这是一种奇怪的方法

cat
将文件添加到zip文件的开头或结尾时,您不会创建
.zip
(或任何其他类型的存档)文件。它只是将两个二进制文件附加在一起

winrar可以打开您的“组合”二进制文件的原因是它很可能识别文件头,并且可以破译您有2个文件

我建议您研究一下zip命令的用法,了解如何将文件添加到存档中。例如,我喜欢快速搜索显示

zip -rv zipfile.zip newfile.txt

将向zipfile.zip添加newfile.txt

我不确定您试图通过将zip文件“隐藏”到PNG中来实现什么,但如果您试图使Winrar可以打开单个文件,那么这是一种奇怪的方法

cat
将文件添加到zip文件的开头或结尾时,您不会创建
.zip
(或任何其他类型的存档)文件。它只是将两个二进制文件附加在一起

winrar可以打开您的“组合”二进制文件的原因是它很可能识别文件头,并且可以破译您有2个文件

我建议您研究一下zip命令的用法,了解如何将文件添加到存档中。例如,我喜欢快速搜索显示

zip -rv zipfile.zip newfile.txt

将向zipfile.zip添加newfile.txt

cat
不会压缩文件,而是将它们附加在一起。Windows上的Winrar可能可以工作,因为它可以识别文件boundaries@cricket_007我知道,我的文件2是一个zip文件,winrar可以打开它。我希望解压命令也能打开它。
cat
不会压缩文件,而是将它们附加在一起。Windows上的Winrar可能可以工作,因为它可以识别文件boundaries@cricket_007我知道,我的文件2是一个zip文件,winrar可以打开它。我希望解压命令也可以打开它。用winrar打开怎么样?winrar如何打开zip文件?用winrar打开怎么样?winrar如何打开zip文件?