精华内容
下载资源
问答
  • python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据,这也没关系,因为string是1个字节为单位的。 import struct a=12.34 #将a变为二进制 bytes=struct.pack(‘i’,a) ...
  • Java以二进制方式读写文件

    万次阅读 2019-01-11 16:39:47
    参考:... this is a very important image for all . 1. Reading and Writing Binary Files Using FileInputStream and FileOu...

    参考:https://www.codejava.net/java-se/file-io/how-to-read-and-write-binary-files-in-java

    this is a very important image for all .


    1. Reading and Writing Binary Files Using FileInputStream and FileOutputStream

    public static void main(String[] args) throws IOException {
    		// TODO Auto-generated method stub
    		String inputFile="C:\\Users\\Administrator\\Desktop\\test.pcm";
    		String outputFile="C:\\Users\\Administrator\\Desktop\\test_result.pcm";
    		
    		InputStream inputStream=new FileInputStream(inputFile);
    		OutputStream outputStream=new FileOutputStream(outputFile);
    		
    		int byteRead;
    		while((byteRead=inputStream.read()) != -1){
    			outputStream.write(byteRead);
    		}
    		inputStream.close();
    		outputStream.close();
    		
    		return;
    		
    	}

    And the following program runs much faster by copying a chunk of bytes at a time (exactly 4096 bytes at a time):

    	public static void main(String[] args) throws IOException {
    		// TODO Auto-generated method stub
    		String inputFile="C:\\Users\\Administrator\\Desktop\\test.pcm";
    		String outputFile="C:\\Users\\Administrator\\Desktop\\test_result.pcm";
    		
    		InputStream inputStream=new FileInputStream(inputFile);
    		OutputStream outputStream=new FileOutputStream(outputFile);
    		
    		long fileSize=new File(inputFile).length();
    		System.out.println(fileSize);
    		byte[] allBytes = new byte[(int) fileSize]; //存疑。
    		inputStream.read(allBytes);
    		outputStream.write(allBytes);
    		
    		inputStream.close();
    		outputStream.close();
    		
    		return;
    		
    	}

    2. Reading and Writing Binary Files Using BufferedInputStream and BufferedOutputStream

    	public static void main(String[] args) throws IOException {
    		// TODO Auto-generated method stub
    		String inputFile="C:\\Users\\Administrator\\Desktop\\test.pcm";
    		String outputFile="C:\\Users\\Administrator\\Desktop\\test_result.pcm";
    		
    //		also.
    //		int bufferSize = 16384; // 16KB buffer size
    //		InputStream inputStream
    //		    = new BufferedInputStream(new FileInputStream(inputFile), bufferSize);
    //		 
    //		OutputStream outputStream
    //		    = new BufferedOutputStream(new FileOutputStream(outputFile), bufferSize);
    		
    		InputStream inputStream=new BufferedInputStream(new FileInputStream(inputFile));
    		OutputStream outputStream=new BufferedOutputStream(new FileOutputStream(outputFile));
    		
    		int BUFFER_SIZE = 16384;
    		byte[] buffer=new byte[BUFFER_SIZE];
    		while (inputStream.read(buffer) != -1){
    			outputStream.write(buffer);
    		}
    		inputStream.close();
    		outputStream.close();
    		
    		return;
    		
    	}

    3.Reading and Writing Binary Files Using New File I/O API (NIO)

    	public static void main(String[] args) throws IOException {
    		// TODO Auto-generated method stub
    		String inputFile="C:\\Users\\Administrator\\Desktop\\test.pcm";
    		String outputFile="C:\\Users\\Administrator\\Desktop\\test_result.pcm";
    		
    		byte[] allBytes=Files.readAllBytes(Paths.get(inputFile));
    		Files.write(Paths.get(outputFile), allBytes);
    		
    		return;
    		
    	}

     

    展开全文
  • 在当前目录创建一个文件myfile.txt,对该文件具有读写权限
  • C语言二进制方式读写文件数据

    千次阅读 2020-08-08 17:39:03
    fwrite(buffer, size, count,fp):以二进制的形式向指定的文件中写入若干数据项(由count决定),返回实际写入的数据项数目,各参数含义如下: buffer:一个存储区的起始地址,该地址开始的存储区的数据即是保存...

    fwrite(buffer, size, count,fp):以二进制的形式向指定的文件中写入若干数据项(由count决定),返回实际写入的数据项数目,各参数含义如下:

    buffer:一个存储区的起始地址,以该地址开始的存储区的数据即是保存到文件中的数据,可以是数组或指针类型;

    size:单个数据项的大小(单位:字节);

    count:数据项数量;

    fp:FILE类型指针,该指针对应的文件即是数据保存的“目的地”;

     
    1. #include <stdio.h>

    2. #include <stdlib.h>

    3.  
    4. int main(){

    5. struct Student{

    6. char name [10];

    7. int num;

    8. int age;

    9. char addr [30];

    10. } stud [10];

    11.  
    12. FILE * output = fopen("D:\\stud.dat","wb");//生成的stud.dat文件无法用记事本打开,打开后显示“乱码”。

    13.  
    14. if(output == NULL){

    15. printf("无法打开文件");

    16. exit(0);

    17. }

    18.  
    19. for(int i=0;i<10;++i){

    20. scanf("%s%d%d%s",stud[i].name,&stud[i].num,&stud[i].age,stud[i].addr);

    21. fwrite(&stud[i],sizeof(struct Student),1,output);

    22. }

    23. fclose(output);

    24. return 0;

    25. }

    fread(buffer, size, count,fp):以二进制的形式从指定的文件中读取若干数据项(由count决定),调用成功返回实际读取到的数据项个数(小于或等于count),不成功或读到文件末尾返回 0,各参数含义如下:

    buffer:一个存储区的起始地址,以该地址开始的存储区用于保存从文件中读取出来的数据,可以是数组或指针类型;

    size:单个数据项的大小(单位:字节);

    count:数据项数量;

    fp:FILE类型指针,该指针对应的文件即是数据的“来源地”;

     
    1. #include <stdio.h>

    2. #include <stdlib.h>

    3.  
    4. int main(){

    5. struct Student{

    6. char name [10];

    7. int num;

    8. int age;

    9. char addr [30];

    10. } stud [10];

    11.  
    12. FILE * input = fopen("D:\\stud.dat","rb");

    13.  
    14. if(input == NULL){

    15. printf("无法打开文件");

    16. exit(0);

    17. }

    18.  
    19. for(int i=0;i<10;++i){

    20. fread(&stud[i],sizeof(struct Student),1/*读取1个数据项*/,input);

    21. printf("%s %d %d %s\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);

    22. }

    23. fclose(input);

    24. return 0;

    25. }

     
    1. #include <stdio.h>

    2. #include <stdlib.h>

    3.  
    4. int main(){

    5. struct Student{

    6. char name [10];

    7. int num;

    8. int age;

    9. char addr [30];

    10. } stud [5];

    11.  
    12. FILE * input = fopen("D:\\stud.dat","rb");

    13.  
    14. if(input == NULL){

    15. printf("无法打开文件");

    16. exit(0);

    17. }

    18.  
    19. int validCount;//实际读取多少数据项

    20. while((validCount = fread(stud,sizeof(struct Student),5/*最多读取5个数据项*/,input))!=0){

    21. for(int i=0;i<validCount;++i){

    22. printf("%s %d %d %s\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);

    23. }

    24. }

    25.  
    26. fclose(input);

    27. return 0;

     

    #include "stdafx.h"
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <io.h>


    void main(){
    FILE *fp=NULL;
    FILE *frp=NULL;
    int handle;
    char fileUrl[50]="d:\\a.txt";
    char *c = "licheng";
    //fopen方法第二个参数为使用文件的方式
    //"rt"只读打开一个文本文件,只允许读数据
    //"wt"只写打开或建立一个文本文件,只允许写数据
    //"at"追加打开一个文本文件,并在文件末尾写数据
    //"rb"只读打开一个二进制文件,只允许读数据
    //"wb"只写打开或建立一个二进制文件,只允许写数据
    //"ab"追加打开一个二进制文件,并在文件末尾写数据
    //"rt+"读写打开一个文本文件,允许读和写
    //"wt+"读写打开或建立一个文本文件,允许读写
    //"at+"读写打开一个文本文件,允许读,或在文件末追加数据
    //"rb+"读写打开一个二进制文件,允许读和写
    //"wb+"读写打开或建立一个二进制文件,允许读和写
    //"ab+"读写打开一个二进制文件,允许读,或在文件末追加数据
    fp = fopen(fileUrl,"w");

    //写入文件方法fwrite(const void*buffer,size_t size,size_t count,FILE*stream); 
    //(1)buffer:是一个指针,对fwrite来说,是要输出数据的地址。
    //(2)size:要写入的字节数;
    //(3)count:要进行写入size字节的数据项的个数;
    //(4)stream:目标文件指针。
    fwrite(c,strlen(c),1,fp);
    fclose(fp);
    //读取文件全部内容
    char ch;
    frp = fopen("d:\\a.txt","r");
    //feof方法判断是否到了文件结尾,配合fgetc方法一起使用
    while(!feof(frp)){
    ch = fgetc(frp);
    putchar(ch);
    }
    system("pause");
    }

     

    展开全文
  • C++二进制文件读写

    2018-04-09 22:50:55
    C/C++实现简单的二进制文件读取和写入示例 1.包含如何读取和写入数字,以及用缓存按字节读取 2.采用标准输入和输出函数创建、打开、关闭文本文件二进制文件
  • package hustspy.encrypt; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;...public class File...
  • 最近在做项目的时候遇到了这个问题,所以想着总结下,方法自己和有需要的朋友,下面这篇文章主要介绍了利用C/C++二进制读写png文件的方法,需要的朋友可以参考借鉴,下面来一起看看吧。
  • 主要介绍了python读写二进制文件的方法,实例分析了Python读写二进制文件的相关技巧,需要的朋友可以参考下
  • 读取二进制文件”位于函数选板的“编程→文件I/O→读取二进制文件”,图标和接线端如图1所示。  图1 读取二进制文件图标和接线端  读取二进制文件二进制文件读取数据,读取的数据类型取决于指定文件的...
  • Qt 二进制文件读写

    千次阅读 2021-02-25 21:39:28
    Qt 使用 QFile 和 QDataStream 进行二进制数据文件读写: QFile 负责文件的 IO 设备接口,即与文件的物理交互; QDataStream 数据流的方式读取文件内容或写入文件内容。 QDataStream 保存文件时使用的数据编码...

    1.方法

    Qt 使用 QFile 和 QDataStream 进行二进制数据文件的读写:

    • QFile 负责文件的 IO 设备接口,即与文件的物理交互;
    • QDataStream 以数据流的方式读取文件内容或写入文件内容。

    QDataStream 保存文件时使用的数据编码的方式不同,可以保存为两种文件:

    • 用 Qt 预定义编码保存各种类型数据的文件,定义文件后缀为“.stm”。Qt 预定义编码是指在写入某个类型数据,如整形数、字符串等到文件流时,使用 Qt 预定义的编码。可以将这种Qt预定义数据格式编码类比于 HTML 的标记符,Qt 写入某种类型数据时用了 Qt 预定义的标记符,读出数据时,根据标记符读出数据。使用 Qt 预定义编码保存的流文件,某些字节是 QDataStream 自己写入的,我们并不完全知道文件内每个字节的意义,但是用 QDataStream 可以读出相应的数据。
    • 标准编码数据文件,定义文件后缀为“.dat”。在将数据写到文件时,完全使用数据的二进制原始内容,每个字节都有具体的定义,在读出数据时,只需根据每个字节的定义读出数据即可。

    2.Qt预定义编码文件的读写

    保存为stm文件

    数据流写入数据时都使用运算符“<<”,不论写的是 qint16、qreal 还是字符串。

    除了可以写入基本的数据类型外,QDataStream 流操作还可以写入很多其他类型的数据,如 QBrush、QColor, QImage、QIcon 等,这些称为可序列化的数据类型(Serializing Qt Data Types)。

        QString fileName = "test.stm";
    
        QFile file(fileName);
    
        if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate))
            return false;
    
        //流读取文件
        QDataStream stream(&file);
    
        //设置版本号,写入和读取的版本号要兼容
        stream.setVersion(QDataStream::Qt_5_9);
    
        //写入流
        QString name = "张三";
        int age = 18;
        QColor color("red");
        stream<<name;
        stream<<age;
        stream<<color;
    
        关闭文件
        file.close();

    读取stm文件

        QString fileName = "test.stm";
    
        QFile file(fileName);
    
        if (!file.open(QIODevice::ReadOnly))
            return false;
    
        //流读取文件
        QDataStream stream(&file);
    
        //设置版本号,写入和读取的版本号要兼容
        stream.setVersion(QDataStream::Qt_5_9);
    
        QString name;
        int age = 0;
        QColor color;
    
        //输出流
        stream>>name;
        stream>>age;
        stream>>color;
    
        //关闭文件
        file.close();

    3.标准编码文件的读写

    保存为dat文件

    创建通用格式文件(即文件格式完全透明,每个字节都有具体的定义,如 SEG-Y 文件)的方法是以标准编码方式创建文件,使文件的每个字节都有具体的定义。用户在读取这种文件时,按照文件格式定义读取出每个字节数据并做解析即可,不管使用什么编程语言都可以编写读写文件的程序。
     

        QString fileName = "test.dat";
    
        QFile file(fileName);
    
        if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate))
            return false;
    
        //流读取文件
        QDataStream stream(&file);
    
        //windows平台
        stream.setByteOrder(QDataStream::LittleEndian);
    
        //写入流
        stream<<QString("张三");
        stream<<qint32(18);
    
        //关闭文件
        file.close();

    读取dat文件

        QString fileName = "test.dat";
    
        QFile file(fileName);
    
        if (!file.open(QIODevice::ReadOnly))
            return false;
    
        //流读取文件
        QDataStream stream(&file);
    
        //windows平台
        stream.setByteOrder(QDataStream::LittleEndian);
    
        QString name;
        int age = 0;
    
        //输出流
        stream>>name;
        stream>>age;
    
        //关闭文件
        file.close();

     

    展开全文
  • QT二进制方式读写文件

    千次阅读 2019-04-02 20:27:14
    ui内容为两个按钮加一个文本编辑控件,字节流方式保存一个文件,然后方式打开并通过转码显示。 #include "mywidget.h" #include "ui_mywidget.h" #include <QDebug> MyWidget::MyWidget(QWidget *...

    ui内容为两个按钮加一个文本编辑控件,以字节流方式保存一个文件,然后以流方式打开并通过转码显示。

    #include "mywidget.h"
    #include "ui_mywidget.h"
    #include <QDebug>
    MyWidget::MyWidget(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::MyWidget)
    {
        ui->setupUi(this);
        ui->textEdit->hide();
    }
    
    MyWidget::~MyWidget()
    {
        delete ui;
    }
    
    void MyWidget::on_pushButton_clicked()
    {
        QString path = QFileDialog::getSaveFileName(this,"保存文件","/myfile/code/qt/","txt (*.txt)");
        if(path.isEmpty() == false)
        {
            QFile file(path);
            bool ret = file.open(QIODevice::WriteOnly);
            if(ret == true)
            {
                QString str("主要看气质!");
                QDataStream stream(&file);
                //把文件内容通过流的方式写入
                stream<<str<<250;
                file.close();
            }
        }
    }
    
    void MyWidget::on_pushButton_2_clicked()
    {
        ui->textEdit->show();
        QString path = QFileDialog::getOpenFileName(this,"打开文件","/myfile/code/qt/","txt (*.txt)");
        if(path.isEmpty() == false)
        {
            QFile file(path);
            bool ret = file.open(QIODevice::ReadOnly);
            if(ret == true)
            {
                //关联文件
                QDataStream stream(&file);
                int a;
                QString tmp;
                //将文件内容读出
                stream>>tmp>>a;
                //显示文件内容
                ui->textEdit->setText(tmp.toUtf8().data());
                //打印文件内容
                qDebug()<<tmp.toUtf8().data()<<a;
                file.close();
            }
        }
    }
    
    #ifndef MYWIDGET_H
    #define MYWIDGET_H
    
    #include <QWidget>
    #include <QFile>
    #include <QFileDialog>
    #include <QDataStream>
    namespace Ui {
    class MyWidget;
    }
    
    class MyWidget : public QWidget
    {
        Q_OBJECT
    
    public:
        explicit MyWidget(QWidget *parent = 0);
        ~MyWidget();
    
    private slots:
        void on_pushButton_clicked();
    
        void on_pushButton_2_clicked();
    
    private:
        Ui::MyWidget *ui;
    };
    
    #endif // MYWIDGET_H
    
    
    展开全文
  • 还有一篇博客,希望能分享点东西, 直接百度搜"Qt实现GUI的二进制文件读写操作(源码分析+工程打包+测试例子)
  • 主要介绍了Python读取二进制文件代码方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 主要介绍了Python二进制文件读取并转换为浮点数详解,用python读取二进制文件,这里主要用到struct包,而这个包里面的方法主要是unpack、pack、calcsize。,需要的朋友可以参考下
  • 能够实现二进制文件读取和写入,二进制文件的保存类型,都可以自己定义,这个关于一些数据的保密,是有作用的。
  • 读取文件内容并以二进制(16进制)显示.zip 读取文件内容16进制编码显示
  • 1 #include <iostream> 2 #include <fstream>... 6 二进制方式进行读写文件,可以读写 各种各样数据类型的数据 7 */ 8 9 class Person { 10 public: 11 char name[50]; 12 ...
  • 1:本程序读取二进制文件,并把读到的二进制文件保存为文本数据 2:二进制文件内容一系列的三维点云数据,由扫描仪器扫描获得 3:本程序采用了多线程技术,读取二进制文件时,界面不会卡顿 4:实例二进制文件为data....
  • 首先使用open函数打开文件,打开模式选择二进制读取”rb”。 f = open(filename, "rb") 第二步,需要打开按照行列读取文件,由于是纯二进制文件,内部不含邮任何的数据结构信息,因此我们需要给定二进制数据的行数...
  • 主要介绍了jscript读写二进制文件的方法,涉及javascript中ActiveXObject对象的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • C语言以二进制形式读入文件

    千次阅读 2018-03-16 21:06:41
    float MatR[9];FILE *infp; infp=fopen("MatR.bin","rb");fread(MatR,sizeof(float),9,infp);fclose(infp);
  • 二进制文件查看工具,可以查看二进制文件,可设计长度对数据进行对齐,检查数据,进行数据分析必不可少的小软件
  • C++读取二进制文件

    2015-04-28 20:53:52
    二进制文件,支持随机读取额,需要事先知道数据结构,欢迎使用
  • 返回转换为十六进制并在具有所需列数的矩阵中的文件元素。 句法: [HEX,SIZE] = HEXFREAD(FILE,COLS) 在屏幕截图中显示了一个带有 MATLAB 图标的示例: h=hexfread([matlabroot,'/X11/icons/matlab32c_icon.xpm'])...
  • 本篇文章主要介绍了JAVA中读取文件二进制,字符)内容的方法总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 之前介绍了本人研究如何使用TCL脚本来存取二进制文件,这是因为我们在具体项目中实际使用得到,今天就给大家介绍下如何使用。
  • 亲测可用,非常详细,看了后肯定会有所顿悟,值得拥有!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 474,826
精华内容 189,930
关键字:

以二进制方式读取文件