标签: binaryfiles

什么是二进制文件,如何创建一个?

我想创建一个表示整数的二进制文件.我认为该文件应该是4个字节.我用linux.怎么做?另一个问题:如何将该文件的内容分配给C中的整数?

c linux binaryfiles

3
推荐指数
1
解决办法
4万
查看次数

使用ActivePerl读取二进制文件时出现问题?

我正在尝试使用以下代码读取二进制文件:

open(F, "<$file") || die "Can't read $file: $!\n";
binmode(F);
$data = <F>;
close F;

open (D,">debug.txt");
binmode(D);
print D $data;
close D;
Run Code Online (Sandbox Code Playgroud)

输入文件是16M; debug.txt只有大约400k.当我查看emacs中的debug.txt时,最后两个字符是^ A ^ C(SOH和ETX字符,根据记事本++),尽管debug.txt中存在相同的模式.文件中的下一行确实有一个^ O(SI)字符,我认为这是该特定字符的第一次出现.

我如何阅读整个文件?

perl binaryfiles activestate

3
推荐指数
1
解决办法
1099
查看次数

许多二进制文件同步

我在办公室服务器上有大约10万个文件(图像,pdf等等).每天文件数增加约100-500个项目,大约20-50个旧文件发生变化.

将Web服务器与这些文件同步的最佳方法是什么?Mercurial,GIT等任何系统都可以提供帮助吗?(在办公室服务器上,我将提交更改,并且Web服务器会定期进行更新)?

第二个问题是,在Web服务器上我有用户生成的内容(二进制文件)(其他文件).这些用户每天上传大约1000-2000个新文件.旧文件不会更改.我需要将这些文件备份到本地计算机.像Merurial,GIT这样的系统可以帮助解决这种情况吗?(在网络服务器上我将通过cron提交这些文件,在本地机器上我会做更新)

谢谢

UPD.

Office服务器是Windows Server 2008 R2 Web服务器是Debian 5 lenny

mercurial synchronization binaryfiles

3
推荐指数
1
解决办法
360
查看次数

使用Java从二进制文件读取整数值

我试图使用DataOupPutStream.write()方法写入大于256的值.当我尝试使用DataInputStream.read()它读取相同的值时,它将返回0.因此,我使用DataOutputStream.writeInt()和DataInputStream.readInt()方法来编写和检索大于256的值,它工作正常.

请参考下面的代码片段我想知道编译器的行为,就像它在语句in.readInt()内部所做的那样while.

FileOutputStream fout = new FileOutputStream("T.txt");
BufferedOutputStream buffOut = new BufferedOutputStream(fout);
DataOutputStream out = new DataOutputStream(fout);

Integer output = 0;
out.writeInt(257);
out.writeInt(2);
out.writeInt(2123);
out.writeInt(223);
out.writeInt(2132);
out.close();

FileInputStream fin = new FileInputStream("T.txt");
DataInputStream in = new DataInputStream(fin);

while ((output = in.readInt()) > 0) {
    System.out.println(output);
}
Run Code Online (Sandbox Code Playgroud)

运行此代码段时的输出是:

Exception in thread "main" java.io.EOFException
    at java.io.DataInputStream.readInt(Unknown Source)
    at compress.DataIOStream.main(DataIOStream.java:34)
257
2
2123
223
2132
Run Code Online (Sandbox Code Playgroud)

但是当我在调试模式下运行时,我得到以下输出:

2123
223
2132
Exception in …
Run Code Online (Sandbox Code Playgroud)

java file-io binaryfiles java-io

3
推荐指数
1
解决办法
1万
查看次数

在git中将目录视为二进制文件或单个文件

我想将一些Omnigraffle文件置于版本控制之下.Omnigraffle将这些文件存储为.graffle目录.

我希望git将这些目录视为单个文件.

我该怎么办?

我试图把*.graffle binary在.gitattributes,但它不工作.

谢谢!

git binaryfiles

3
推荐指数
1
解决办法
1022
查看次数

多个小型mallocs与一个大型malloc

任务是将二进制文件解析到内存中.但是,我不知道分配所需的内存量.

哪种方法更可取:在解析例程中进行多个小malloc,或者首先遍历文件以确定所需的内存量,然后再次解析?

任何提示都表示赞赏.

c malloc binaryfiles

3
推荐指数
1
解决办法
3296
查看次数

使用ifstream进行每次阅读后我是否需要寻求?

这是我从任何大小的文件读取的循环,并且每次写入1016字节的char*数据包1016字节然后发送它(发送未包括在内).

seekg()是必要的吗?或者读取是否已将指针移动到下一个块的前面?

ifstream file (packet.message, ios::in|ios::binary|ios::ate);
if(file.is_open()) {
    size = file.tellg();
    file.seekg(0, ios::beg);
    for(int i = 0; !ios::eof; i++) {
        memset(packet.message,0,1016*sizeof(char));
        file.read(packet.message,1016*sizeof(char));
        file.seekg(i*1016*sizeof(char));
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道这不是写入文件的问题,因为你只是一直写到文件的大小正确.

编辑:在if语句中添加了整个代码.

c++ file-io binaryfiles

3
推荐指数
1
解决办法
2176
查看次数

在Scala中的文件中有效地存储Long序列

所以我有一个关联将一对Ints与一个Vector[Long]最大为10000 的s 相关联,并且我有几十万到一百万这样的数据.我想将它存储在一个文件中,以便以后在Scala中处理.

显然,以纯文本格式存储它会占用太多空间,所以我一直试图通过编写Byte流来弄清楚如何做到这一点.但是我不太确定这是否会起作用,因为在我看来byteValue(),a Long返回Byte仍然是4个字节长的表示,因此我不会保存任何空间?我没有太多使用二进制格式的经验.

似乎Scala标准库有BytePickle可能是我想要的,但后来被弃用了?

byte scala binaryfiles bytearray binary-data

3
推荐指数
2
解决办法
819
查看次数

在函数调用之间保留文件指针

我有一个代码,我几次访问二进制文件.每次调用该函数时,它都会打开文件进行读取,并且只读取所需的字节数(比如n每次的字节数).

二进制文件包含时间序列数据,我希望它能够通过循环运行函数调用,每次调用函数打开同一个文件时,它需要读出下一个块数据,即我不希望每次都重置文件指针.有没有办法做到这一点?

该函数看起来像这样:

int readBinary(float *binImage, int gelements) {
    imageFile = fopen("tmpImageFile", "r");
    if (imageFile == NULL) {
       fprintf(stderr, "Error opening file\n");
       return (1);
    }
    fread(binImage, sizeof(float), gelements, imageFile);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在我的主代码中,我想通过循环运行它,每次都给它一个binImage大小的数组gelements.gelements * nLoop如果这是可以避免的,我宁愿不给它一个大小的数组.

c file-io binaryfiles

3
推荐指数
2
解决办法
2812
查看次数

以二进制格式写入文件

我试图以二进制格式编写文件.我有以下代码,但它以文本格式保存文件.

#include <iostream>
#include <fstream>

using namespace std;

int main(){
    std::string ref = "Ecoli. 123";
    unsigned int size = 124;

    std::ofstream supp_info_output("binary_file",  std::ios::out | std::ios::binary); // saving file
    supp_info_output << ref << std::endl;
    supp_info_output << size << std::endl;
    supp_info_output.close();

    std::ifstream supp_info_input("binary_file", std::ios::in | std::ios::binary); // loading file
    std::string supp_info_line;
    while( std::getline( supp_info_input, supp_info_line ).good() ){
        std::cout << supp_info_line << std::endl;
    }
    supp_info_input.close();
}
Run Code Online (Sandbox Code Playgroud)

在代码中,我正在编写一些数据,然后再次读取数据.读写没有问题,但我需要二进制格式的文件.

c++ binaryfiles

3
推荐指数
1
解决办法
6683
查看次数