精华内容
下载资源
问答
  • 文本文件转换成二进制文件

    热门讨论 2010-09-29 19:11:57
    把纯文本文件转化成二进制文件存储到一个.c文件里 .c文件的数组里是二进制的内容
  • 二进制文件srcfile 转换成文本文件 targetfile,16进制显示。 二进制文件srcfile 转换文本文件 targetfile,16进制显示。 二进制文件转换文本文件 targetfile,16进制显示。 二进制文件转换文本文件,16进制显示...
  • 将内容为十六进制的文本文件转换成二进制内容的bin文件
  • 主要为大家详细介绍了C语言实现文本文件二进制文件格式互换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 文本文件转换二进制文件
  • 编写bint的目的是从基因分型分析中获得强度数据的子集。 用于创建聚类图的X和Y... bint将强度浮点数据的文本表示形式转换为IEEE754索引的二进制文件,以快速提取数据的子集。 理论上,bint可用于任何大的float数据表。
  • 二进制文件转化十六进制的ascii码形式,用于编程使用。输出文件内容格式:0x52,0x49,0x46,0x46,0x3E,0x02,0x00,0x00,0x51,0x4C,可以拷贝到程序里面的数组里直接使用。
  • 在python3中把文本转换为二进制的方法:首先修改dirroot为要读取的文件夹的...当读取读大量数据的时候,为了加快读取的速度,需要将文本文件转为二进制文件。python代码如下:#coding:utf-8#!/bin/pythonimportosi...

    在python3中把文本转换为二进制的方法:首先修改dirroot为要读取的文件夹的路径;然后遍历所有的文件夹,读取txt文件;最后更改newdirroot为新的目录路径,程序运行完以后会生成和原来一样的目录和dat的二进制文件。

    当读取读大量数据的时候,为了加快读取的速度,需要将文本文件转为二进制文件。

    python代码如下:#coding:utf-8

    #! /bin/python

    import os

    import sys

    import os.path

    import pickle

    import  struct

    dirroot = "F:\\feature_train\\"

    newdirroot="F:\\new\\"

    for dirnames in os.listdir(dirroot):

    print ("进入文件夹:" )

    #print dirnames

    for dirname in os.listdir(dirroot dirnames):

    #print dirname

    if dirname.split('.')[1]!='txt':

    continue

    file=open(dirroot dirnames '\\' dirname,'r')

    filename=dirname.split('.')[0] '.dat'

    if not os.path.exists(newdirroot dirnames '\\'):

    os.makedirs(newdirroot dirnames '\\')

    fileNew=open(newdirroot dirnames '\\' filename,'wb')

    lines=file.readlines()

    for line in lines:

    curLine=line.split(' ')

    for i in range(len(curLine)):

    if len(curLine[i])==0:

    continue

    parsedata = struct.pack("f",float(curLine[i]))

    fileNew.write(parsedata)

    fileNew.write('\n')

    fileNew.close()

    file.close()

    使用方法:修改dirroot为要读取的文件夹的目录路径,程序会遍历所有的文件夹,读取其中的txt文件。根目录下都是文件夹。                                   newdirroot为新的目录的路径,程序运行完以后会生成跟原来一样的目录和dat的二进制文件。

    txt文件里为float的格式的数据,可以根据情况修改。

    C 读取二进制文件:#include 

    #include 

    #include

    using namespace std;

    int main(int argc, char** argv)

    {

    printf("www\r\n");

    //std::cout<

    float rfea[1024]={0};

    FILE *fp;

    fp = fopen("001.dat", "rb");

    if (fp != NULL){

    fread(rfea, 1024*sizeof(float), 1, fp);

    fclose(fp);

    }

    int i=0;

    for (i=0;i<30 ;i  )

    {

    printf("%f\r\n",rfea[i]);

    }

    return 0;

    }

    展开全文
  • 二进制文件转换文本文件的工具

    千次下载 热门讨论 2012-01-12 10:31:53
    一个很有用的工具,可以将二进制文件转换文本文件
  • 文件转换二进制

    热门讨论 2013-02-19 16:06:26
    文本字符串与byte[], 整个物理文件与byte[], 物理文件内容与byte[], stream与byty[] 之间的相互转换。 从磁盘读取文件,将文件写入磁盘。
  • 读取文件中的二进制文件并将二进制转换成文本文档并输出
  • 今天,项目现场提出这样一种需求:项目中,将项目文件打zip包进行发布时,由于安全机制的限制,不允许发布二进制文件,因此需要将.zip格式的二进制文件encode成文本文件,再将文本文件上传后decode.zip格式。...

    一、说明

    今天,项目现场提出这样一种需求:项目中,将项目文件打成zip包进行发布时,由于安全机制的限制,不允许发布二进制文件,因此需要将.zip格式的二进制文件encode成文本文件,再将文本文件上传后decode成.zip格式。

    二、直接上代码

    1、首先上传统IO实现方式

    package com.mzj.pe.codec;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    /**
     * @Auther: mazhongjia
     * @Date: 2020/9/17 11:26
     * @Version: 1.0
     */
    public interface BinaryTextCodec {
    
        String encode(FileInputStream fileInputStream) throws IOException;
    
        void decode(FileOutputStream outputStream, String text) throws IOException;
    
        public static BinaryTextCodec createBinaryTextCodec(){
            return new BinaryTextCodecImpl();
        }
    }
    
    package com..mzj.pe.codec;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    /**
     * @Auther: mazhongjia
     * @Date: 2020/9/17 11:28
     * @Version: 1.0
     */
    public class BinaryTextCodecImpl implements BinaryTextCodec {
    
        private static final String TEXT_SPLIT_CHAR = ",";
    
        @Override
        public String encode(FileInputStream fileInputStream) throws IOException {
            if (fileInputStream == null) {
                return null;
            }
            StringBuilder builder = new StringBuilder();
            int i = 0;
            while ((i = fileInputStream.read()) != -1) {
                builder.append(i + TEXT_SPLIT_CHAR);
            }
            return builder.toString();
        }
    
        @Override
        public void decode(FileOutputStream fileOutputStream, String text) throws IOException {
            if (fileOutputStream == null || text == null) {
                return;
            }
            String[] lineone = text.split(TEXT_SPLIT_CHAR);
    
            for (int j = 0; j < lineone.length; j++) {
                fileOutputStream.write(Integer.valueOf(lineone[j]));
            }
            fileOutputStream.flush();
        }
    
    
    }
    
    package com.mzj.pe.codec;
    
    import java.io.*;
    
    /**
     * @Auther: mazhongjia
     * @Date: 2020/9/17 13:55
     * @Version: 1.0
     */
    public class FileTransitionUtil {
    
        private static BinaryTextCodec binaryTextCodec = BinaryTextCodec.createBinaryTextCodec();
    
        public static void binaryToText(String binaryFilePath, String textFilePath) throws IOException {
            File binaryFile = new File(binaryFilePath);
            if (!binaryFile.exists()) {
                System.out.println("转换的二进制文件不存在....");
                return;
            }
            File textFile = new File(textFilePath);
            if (!textFile.exists())
                textFile.createNewFile();
    
            FileInputStream fileInputStream = null;
            BufferedWriter bufferedWriter = null;
    
            try {
                fileInputStream = new FileInputStream(binaryFile);
                bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(textFile)));
    
                String encoder = binaryTextCodec.encode(fileInputStream);
                if (encoder != null) {
                    bufferedWriter.write(encoder);
                    bufferedWriter.flush();
                    System.out.println("成功将【"+binaryFilePath+"】转换成文本文件【"+textFilePath+"】");
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (fileInputStream != null) {
                    try {
                        fileInputStream.close();
                    } catch (IOException ie) {
                        ie.printStackTrace();
                    }
                }
                if (bufferedWriter != null) {
                    try {
                        bufferedWriter.close();
                    } catch (IOException ie) {
                        ie.printStackTrace();
                    }
                }
            }
        }
    
    
        public static void textToBinary(String binaryFilePath, String textFilePath) throws IOException {
            File textFile = new File(textFilePath);
            if (!textFile.exists()) {
                System.out.println("转换的文本文件不存在....");
                return;
            }
            File binaryFile = new File(binaryFilePath);
            if (!binaryFile.exists())
                binaryFile.createNewFile();
    
            FileOutputStream fileOutputStream = null;
            BufferedReader bufferedReader = null;
    
            try {
                fileOutputStream = new FileOutputStream(binaryFile);
                bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(textFile)));
    
                binaryTextCodec.decode(fileOutputStream, bufferedReader.readLine());
                System.out.println("成功将【"+textFilePath+"】转换成二进制文件【"+binaryFilePath+"】");
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (fileOutputStream != null) {
                    try {
                        fileOutputStream.close();
                    } catch (IOException ie) {
                        ie.printStackTrace();
                    }
                }
                if (bufferedReader != null) {
                    try {
                        bufferedReader.close();
                    } catch (IOException ie) {
                        ie.printStackTrace();
                    }
                }
            }
        }
    }
    
    package com.mzj.pe.codec;
    
    import java.io.IOException;
    
    /**
     * @Auther: mazhongjia
     * @Date: 2020/9/17 14:15
     * @Version: 1.0
     */
    public class Demo {
    
        public static void main(String[] args) throws IOException {
            FileTransitionUtil.binaryToText("D:\\埃及项目画面说明.doc","D:\\1.txt");
            FileTransitionUtil.textToBinary("D:\\1.doc","D:\\1.txt");
    
            FileTransitionUtil.binaryToText("D:\\专题图演示视频.mp4","D:\\2.txt");
            FileTransitionUtil.textToBinary("D:\\2.mp4","D:\\2.txt");
    
            FileTransitionUtil.binaryToText("D:\\17年餐费未报销.zip","D:\\3.txt");
            FileTransitionUtil.textToBinary("D:\\3.zip","D:\\3.txt");
    
    
        }
    }
    

    2、然后我自己又用NIO实现了一版

    package com.mzj.pe.codec.test;
    
    import java.nio.ByteBuffer;
    import java.nio.CharBuffer;
    import java.nio.channels.FileChannel;
    import java.nio.charset.Charset;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    import java.nio.file.StandardOpenOption;
    
    /**
     * @Auther: mazhongjia
     * @Date: 2020/9/17 14:57
     * @Version: 1.0
     */
    public class Text {
    
        public static void main(String[] args) throws Exception {
    
            Path pathIn = Paths.get("D://原始二进制文件.zip");
            Path pathOut = Paths.get("D://1.txt");
    
            FileChannel inputChannel = FileChannel.open(pathIn, StandardOpenOption.READ);
            FileChannel outputChannel =FileChannel.open(pathOut,StandardOpenOption.WRITE);
    
            ByteBuffer byteBuffer = ByteBuffer.allocate(1024);
    
            while (true){
                byteBuffer.clear();
    
                int read = inputChannel.read(byteBuffer);
                if(-1 == read){//此处用-1判断是否读完需要依赖上面的 byteBuffer.clear();
                    //文件读完了
                    break;
                }
    
                //读到文件中内容了,翻转缓冲区,准备get其中数据
                byteBuffer.flip();//本例中从ByteBuffer获取数据没有显示的get,而是将其作为参数传给另一个Channel的write方法,但是也是读其中的数据,所以也要进行翻转
    
                StringBuilder builder = new StringBuilder();
                while (byteBuffer.hasRemaining()){
                    builder.append(byteBuffer.get()+",");//1、将bytebuffer中数据,以字节形式取出,每个字节后追加逗号,形成字符串,以便解析字符串时时按,分割还原字节
                }
    
                CharBuffer charBuffer = CharBuffer.allocate(builder.length());//2、定义一个上面生成字符串长度的ChatBuffer
    
                charBuffer.put(builder.toString());//3、将字符串写入CharBuffer(A,B,C,D....)
                charBuffer.flip();
    
                Charset charset= Charset.defaultCharset();//4、将CharBuffer数据准备写入outputChannel,写入之前,需要转换成ByteBuffer,转换时需要按照特定字符集编码形式进行转换
                ByteBuffer byteBuffe1r=charset.encode(charBuffer);
    //            byteBuffe1r.flip();
                outputChannel.write(byteBuffe1r);//将byteBuffer中内容写入到Channel中//5、将CharBuffer的ByteBuffer数组写入outputChannel
    
    //            outputChannel.write(byteTemp);//将byteBuffer中内容写入到Channel中
            }
    
            inputChannel.close();
            outputChannel.close();
        }
    }
    
    
    package com.mzj.pe.codec.test;
    
    import java.nio.ByteBuffer;
    import java.nio.CharBuffer;
    import java.nio.channels.FileChannel;
    import java.nio.charset.Charset;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    import java.nio.file.StandardOpenOption;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * @Auther: mazhongjia
     * @Date: 2020/9/17 14:57
     * @Version: 1.0
     */
    public class Text2 {
    
        public static void main(String[] args) throws Exception {
    
            Path pathIn = Paths.get("D://1.txt");
            Path pathOut = Paths.get("D://1.zip");
    
            FileChannel inputChannel = FileChannel.open(pathIn, StandardOpenOption.READ);
            FileChannel outputChannel =FileChannel.open(pathOut,StandardOpenOption.WRITE);
    
            ByteBuffer byteBuffer = ByteBuffer.allocate(1024);
            List<Byte> byteList = new ArrayList<>();
            while (true){
                byteBuffer.clear();
    
                int read = inputChannel.read(byteBuffer);
                if(-1 == read){//此处用-1判断是否读完需要依赖上面的 byteBuffer.clear();
                    //文件读完了
                    break;
                }
    
                //读到文件中内容了,翻转缓冲区,准备get其中数据
                byteBuffer.flip();//本例中从ByteBuffer获取数据没有显示的get,而是将其作为参数传给另一个Channel的write方法,但是也是读其中的数据,所以也要进行翻转
    
                while(byteBuffer.hasRemaining()){
                    byteList.add(byteBuffer.get());
                }
            }
            byte[] bytes = new byte[byteList.size()];
            for (int ii=0;ii<bytes.length;ii++){
                bytes[ii] = byteList.get(ii);
            }
    
            //1、这里的data,是A,B,C...的字符串形式,也就是原始二进制文件的byte数组的字符串逗号分割形式
            String data = new String(bytes,Charset.defaultCharset());//这一步是通过文本的字节数组形式,获取文本内容//2、将文本文件中字节还原成A,B,C,....形式,这里相当于decode,解码字符集要与编码保持一致
    
            //3、下面是还原原二进制文件的字节数组:byte2s
            String[] dataspliet = data.split(",");
            byte[] byte2s = new byte[dataspliet.length];
    
            for (int ii=0;ii<byte2s.length;ii++){
                byte2s[ii] = Byte.valueOf(dataspliet[ii]);
            }
    
            //4、下面是根据原二进制文件字节数组封装ByteBuffer
            ByteBuffer byteBufferWrite = ByteBuffer.allocate(byte2s.length);
    
            byteBufferWrite.put(byte2s);
    
            byteBufferWrite.flip();
            //5、将字节数组写入outputChannel
            outputChannel.write(byteBufferWrite);//将byteBuffer中内容写入到Channel中
    
    //            outputChannel.write(byteTemp);//将byteBuffer中内容写入到Channel中
    
            inputChannel.close();
            outputChannel.close();
        }
    }
    
    

     

    展开全文
  • 二进制文件文本文件转换工具

    热门讨论 2010-04-21 16:03:28
    在论坛想上传文件,不行! 直接粘贴文件内容,不行!可能它是二进制文件。 怎么办,用“二进制文件文本文件转换工具” C#应用示例,含源码。
  • 二进制文件转换成文本文件

    热门讨论 2008-08-29 14:30:27
    这是一段小程序,功能是将二进制文件(*.dat)转换成文本文件(或者Excel表格)!
  • STL文件文本(asc)和二进制(bin)两种格式。本程序提供了从文本二进制格式的转换
  • 十六进制与二进制代码文件相互转换工具,Windows标准窗口,不似其它类似工具只工作在命令行模式下。可相互转换的格式有Intel HEX格式, Motorola S19格式,二进制BIN格式。有代码查看窗口,可直接查看代码。
  • 单片机开发过程中,需要将不同的bin文件(boot、app,data)合并,合并之后的文件需要转16进制文件时使用此工具。 可以直接使用,也可以对源文件编辑,编译,按照自定义的要求实现特定的功能。
  • hex文件二进制工具

    2018-11-01 14:24:41
    这个软件,可以把keil生成的文件转换二进制文件 ,真的可以。
  • STL文件文本(asc)和二进制(bin)两种格式。本程序提供了从二进制文本格式的转换。 STL文件文本(asc)和二进制(bin)两种格式。本程序提供了从二进制文本格式的转换
  • base64设计用于在文本中存储二进制文件。它在转换后会生成更大的块。顺便问一下:你想要什么样的效率?紧凑性?在如果是:第二个样本更接近您想要的顺便说一句:在你的任务中你丢失了信息!你知道吗?在下面是一个...

    当然,这是低效的!

    base64设计用于在文本中存储二进制文件。它在转换后会生成更大的块。

    顺便问一下:你想要什么样的效率?紧凑性?在

    如果是:第二个样本更接近您想要的

    顺便说一句:在你的任务中你丢失了信息!你知道吗?在

    下面是一个如何存储和恢复的示例。在

    它以易于理解的Hex-In-Text格式存储数据,只是为了演示。如果你想要简洁-你可以很容易地修改代码以存储在二进制文件中,或者如果你想要00011001视图-修改也很容易。在import math

    #"make a long test string"

    import numpy as np

    s=''.join((str(x) for x in np.random.randint(4,size=33)))\

    .replace('0','A').replace('1','T').replace('2','G').replace('3','C')

    def store_(s):

    size=len(s) #size will changed to fit 8*integer so remember true value of it and store with data

    s2=s.replace('A','0').replace('T','0').replace('G','1').replace('C','1')\

    .ljust( int(math.ceil(size/8.)*8),'0') #add '0' to 8xInt to the right

    a=(hex( eval('0b'+s2[i*8:i*8+8]) )[2:].rjust(2,'0') for i in xrange(len(s2)/8))

    return ''.join(a),size

    yourDataAsHexInText,sizeToStore=store_(s)

    print yourDataAsHexInText,sizeToStore

    def restore_(s,size=None):

    if size==None: size=len(s)/2

    a=( bin(eval('0x'+s[i*2:i*2+2]))[2:].rjust(8,'0') for i in xrange(len(s)/2))

    #you loose information, remember?, so it`s only A or G

    return (''.join(a).replace('1','G').replace('0','A') )[:size]

    restore_(yourDataAsHexInText,sizeToStore)

    print "so check it"

    print s ,"(input)"

    print store_(s)

    print s.replace('C','G').replace('T','A') ,"to compare with information loss"

    print restore_(*store_(s)),"restored"

    print s.replace('C','G').replace('T','A') == restore_(*store_(s))

    我的测试结果:

    ^{pr2}$

    展开全文
  • 该函数将LabVIEW二进制文件转换为TAB定界文本文件二进制文件必须由n_channels 的双DOUBLE 类型数据组成。
  • 因为我现在从文本文件读取(0-255)的数据,一行一个数据,读取到在int数组每个数据占用三个字节,我想只占用一个字节,然后保存二进制文件,请问怎么可以解决呢? 例如,文本文件数据是255,这样写入之后二进制...
  • 建立一个数据库字段存放转成二进制的图片,这个字段有一个要求就是要设置成blob类型的CREATE TABLE `save_image` ( `id` int(50) NOT NULL AUTO_INCREMENT, `images` blob, PRIMARY KEY (`id`)) 三、转换文件成...

    一、功能描述:

    将文件转成二进制数据放入数据库中,需要的时候,便可以取出安装与使用。


    二、数据库:

    建立一个数据库字段存放转成二进制的图片,这个字段有一个要求就是要设置成blob类型的

    1. CREATE TABLE `save_image` (
    2. `id` int( 50) NOT NULL AUTO_INCREMENT,
    3. `images` blob,
    4. PRIMARY KEY ( `id`)
    5. )

    三、转换文件成为二进制数据并保存的Java代码:

    1. public void save() throws SQLException
    2. {
    3. connection=connectionManager.getconn(); //连接数据库的操作,这里自己连接自己的数据库
    4. try {
    5. File file= new File( "D:\\1.jpg"); //要转换的文件
    6. FileInputStream inputStream= new FileInputStream(file);
    7. String sql= "insert into save_image(images) values(?)"; //存入数据库的SQL语句在执行的时候一定要用prepareStatement
    8. statement=connection.prepareStatement(sql);
    9. statement.setBinaryStream( 1, inputStream,( int)file.length());
    10. statement.executeUpdate();
    11. } catch (FileNotFoundException e) {
    12. // TODO Auto-generated catch block
    13. e.printStackTrace();
    14. } catch (SQLException e) {
    15. // TODO Auto-generated catch block
    16. e.printStackTrace();
    17. }
    18. }
    四、取出数据并还原文件到本地的java代码:
    1. //读取数据库二进制文件
    2. public void readerJpg() throws SQLException
    3. {
    4. connection=connectionManager.getconn(); //自己连接自己的数据库!!!!!!!!
    5. String sqlString= "select images from save_image where id=4"; //从数据库中读出要还原文件的二进制码,这里我读的是自己的数据库id为4的文件
    6. File file= new File( "E:\\1.jpg"); //本地生成的文件
    7. if(!file.exists())
    8. {
    9. try {
    10. file.createNewFile();
    11. } catch (Exception e) {
    12. e.printStackTrace();
    13. }
    14. }
    15. try {
    16. byte[] Buffer = new byte[ 4096* 5];
    17. statement=connection.prepareStatement(sqlString);
    18. resultSet = statement.executeQuery();
    19. if(resultSet.next())
    20. {
    21. FileOutputStream outputStream = new FileOutputStream(file);
    22. InputStream iStream = resultSet.getBinaryStream( "images"); //去字段用getBinaryStream()
    23. int size= 0;
    24. while((size=iStream.read(Buffer))!=- 1)
    25. {
    26. System.out.println(size);
    27. outputStream.write(Buffer, 0,size);
    28. }
    29. }
    30. } catch (Exception e) {
    31. e.printStackTrace();
    32. }
    33. }


    展开全文
  • 文本文件二进制文件之间的准换

    万次阅读 2018-05-29 15:23:43
    本程序要自己创建个文本格式的输入文件a1.txt,编译后能将文本文件前255字节以内的字符转换成相应的AscII码值的二进制表示,并存入输出文件a2.txt中。然后再将二进制文件还原并存入a3.txt文件。 具体代码如下: ...
  • C语言文本文件二进制文件转换

    千次阅读 2019-07-13 19:19:05
    本程序要自己创建个文本格式的输入文件a1.txt,编译后能将文本文件前255字节以内的字符转换成相应的AscII码值的二进制表示,并存入输出文件a2.txt中。然后再将二进制文件还原并存入a3.txt文件。实现文件之间的转换。...
  • 前面的话Python内置的base64模块,在这里http://docs.python.org/library/base64.html?highlight=base64#base64,包括b64...但是在用base64.encode编码二进制文件的时候,发现编码不完整,只有部分文件被编码了,b...
  • 文本文件二进制文件转换

    万次阅读 2012-10-08 23:38:45
    网上关于文本文件二进制文件的文章很多,但遗憾的是,这些文章讲得都比较散。下面我将结合所查到的资料,从多个角度谈谈文本文件二进制文件。  一、文本文件二进制文件的定义 大家都知道计算机的存储在...
  • 用load,textread或者importdata文本(txt)格式的文件,只能识别数据,对其中的文本无法读取。可以使用fscanf或者sscanf的方式读取,思路为:定义cell矩阵,先全部以字符的方式读入,再将其中的数字转换为数据格式。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 200,241
精华内容 80,096
关键字:

文本文件转换成二进制文件