我从互联网上下载了一个 zip 文件,得到的是纯文本字符串。我现在想将其保存到磁盘,但我该如何将此文本字符串转换为文件缓冲区?需要做什么才能将此字符串用于文件系统写入函数?
编辑:
当我将数据直接写入磁盘时出现的问题是 zip 文件损坏了。
下载的文件大小为 34712 字节,但是当我将其直接保存到磁盘时,其大小为 64760 字节。
文件的前5行:
The new created file as binary:
504b 0304 1400 0200 0800 47fd 3a3d 3efd
fd57 fd5b 0000 006a 0000 0c00 0000 6963
6f6e 7365 7874 2e65 7865 fdfd 7758 fd4b
1738 fdfd fdfd 2424 fa63 fdfd 4140 fd45
5a30 4840 6a28 2140 0811 1240 050c fd05
The new created file as utf8:
504b 0304 1400 0200 0800 47ef bfbd 3a3d
3eef bfbd efbf bd57 efbf bd5b 0000 006a
0000 0c00 0000 6963 6f6e 7365 7874 2e65
7865 efbf bdef bfbd 7758 efbf bd4b 1738
efbf bdef bfbd efbf bdef bfbd 2424 f48e
Original noncorrupted file from the internet:
504b 0304 1400 0200 0800 4799 3a3d 3eae
b857 865b 0000 006a 0000 0c00 0000 6963
6f6e 7365 7874 2e65 7865 edfd 7758 934b
1738 8abe e981 2424 f48e a1a3 b4d0 4140
e945 5a30 4840 6a28 2140 0811 1240 050c
答案1
为什么你不能直接下载文件?
如果您坚持下载流,只需将获取的内容重定向到文件,因此:
*不适用:
output_of_download_command > /path/to/file_name.zip
视窗:
output_of_download_command > c:\path\to\file_name.zip
请注意,实际字符串之前和之后可能会有一些额外的信息!如果不知道你到底在做什么,就不可能给出具体的命令,但你可以将所有错误重定向到不同的地方:
请参阅此处:
答案2
因此我找到了一个解决方案,首先将字符串转换为 Uint8,然后将其转换为文件缓冲区,然后我可以保存它。