精华内容
参与话题
问答
  • Matlab读写文本数据

    千次阅读 2018-10-12 08:55:17
    matlab文件读取总结 matlab的文件读取函数功能可以读取各种文件类型,包括: textread(字母和数值每行格式一致) xlsread(读取excel文件) importdata(字母和数值分开,以数字为主,字母只存在前几行) load(纯数据)...

    matlab文件读取总结

    matlab的文件读取函数功能可以读取各种文件类型,包括:

    textread(字母和数值每行格式一致) 
    xlsread(读取excel文件) 
    importdata(字母和数值分开,以数字为主,字母只存在前几行) 
    load(纯数据) 
    dlmread(单一分隔符的纯数据或ASCII数据文件) 
    textscan(类似于textread,但使用前必须fopen打开文件) 
    csvread(类似于xlsread,读取.csv格式的文件) 
    
    

    textread读取

    %-- read
    fid=fopen('sbdart_aeronet_w.out','r');
    aerosol_w = textscan(fid, '%f', 'HeaderLines',1); % 跳过第一行
    fclose(fid);
    %-- 因为不是成行读取,所以读取后的数据需要重新调整为矩阵
    aerosol_w = cell2mat(aerosol_w);
    aerosol_w = reshape(aerosol_w, 9, [])';  %原始数据是M行*9

    fscan读取

    fileID = fopen('I:\filelist_2019-01-01-2019-12-31_filenames.txt');
    files = textscan(fileID,'%s');
    fclose(fileID);
    

    逐行读取字符串文本

    clc
    clear all
    close all
    
    fid_write = fopen('C:\Users\Lily\Desktop\functions_filtered.txt','wt');      %新建一个txt文件
    fid_read = fopen('C:\Users\Lily\Desktop\functions.txt');
    tline = fgetl(fid_read);
    while ischar(tline)
        %     disp(tline)
        tline = fgetl(fid_read);
        if tline~=-1 & contains(tline,'p5')
            continue;
        end    
        fprintf(fid_write,'%s\n',tline);%新的字符串写入当新建的txt文档中
    end
    fclose(fid_read);
    
    

    Matlab文件写文本

    写csv文件

    例子1和2通过table数据结构,并写入csv。关于表的具体使用可以看官网
    通过table数据结构,可以设置表头(每一列名)以及每一行名,当然也可以不设置。
    用法:

    T = table(var1,...,varN)
    T = table('Size',sz,'VariableTypes',varTypes)
    T = table(___,'VariableNames',varNames)
    T = table(___,'RowNames',rowNames)
    T = table
    

    例子1——writetable

    data = magic(5);
    result_table = table(data);
    %保存表格
    writetable(result_table, 'test.csv');
    

    例子2——writetable

    %需要保存的矩阵
    data = magic(5);
    T = table(data(:,1),data(:,2),data(:,3),'VariableNames',{'Value1','Value2','Value3'});
    writetable(T, 'test.csv');
    

    例子3——dlmwrite

    %需要保存的矩阵
    data = magic(5);
    % write header to file
    fid = fopen('test.csv','w'); 
    fprintf(fid,'%s\n',['Value1,Value2,Value3,Value4,Value5'])
    fclose(fid)
    % write data to end of file
    dlmwrite('test.csv',data,'-append');
    

    备注:如果制定每列标题的话,例子3可能更方便一些

    例子4——csvwrite
    这里如果要写入每一列的表头,仍然需要像列子3一样处理

    csvwrite(filename,M) 将矩阵 M 以逗号分隔值形式写入文件 filename。
    csvwrite(filename,M,row,col) 从指定的行和列偏移量开始将矩阵 M 写入文件 filename。行和列参数从 0 开始,因此 row=0 和 col=0 指定文件中的第一个值。
    

    例子5——printf

    % Create a csv file
    fid=fopen('test2.csv','a');
    BD1=1:size(data,1);% size(x,1)表示行数,size(x,2)表示列数
    if fid<0
    	errordlg('File creation failed','Error');
    end
    
    % 注意fprintf不支持元胞数组
    title={'NO','obj1','obj2'};
    % fprintf(fid,'%s,%s,%s\n',title(1),title(2),title(3)); % 这样写会保错
    fprintf(fid,'%s,%s,%s\n',cell2mat(title(1)),cell2mat(title(2)),cell2mat(title(3)));
    % 一共有51for i=1:size(data,1)
    	fprintf(fid,'%d,%d,%d\n',BD1(i),data(i,1),data(i,2));
    end
    fclose(fid);
    

    例子6——writematrix

    data = magic(5);
    writematrix(data,'test.csv')
    

    参考
    https://www.cnblogs.com/cloud-ken/p/12701082.html
    https://ww2.mathworks.cn/help/matlab/ref/writematrix.html#namevaluepairarguments
    https://ww2.mathworks.cn/help/matlab/ref/csvwrite.html

    展开全文
  • 普通读取文件方法 constfs=require('fs') constpath=require('path') functiongetFileByPath(fpath,succCb,errCb){ fs.readFile(fpath,'utf-8',(err,datastr)=>{ //异步方法,主程序直接把fs.readfile方法放...

    普通读取文件方法

    const fs = require('fs')
    const path = require('path')
    
    function getFileByPath(fpath,succCb,errCb){
        fs.readFile(fpath,'utf-8',(err,datastr)=>{  
            //异步方法,主程序直接把fs.readfile方法放入队列,直接执行下一步
            if(err) return errCb(err) 
            succCb(datastr)
        })
    }
    
    getFileByPath(path.join(__dirname,'./files/1.txt'),function(datastr){
        console.log(datastr);
    },function(err){
        console.log(err.message);
    })

     

    文件下载方法

    function download() {
       var url = "/ExportPdf?proId=" + proId;
       var xhr = new XMLHttpRequest();
       xhr.open('GET', url, true);        // 也可以使用POST方式,根据接口
       xhr.responseType = "blob";    // 返回类型blob
       // 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑
       xhr.onload = function () {
           // 请求完成
           if (this.status === 200) {
               // 返回200
               var blob = this.response;
               var reader = new FileReader();
               reader.readAsDataURL(blob);    // 转换为base64,可以直接放入a表情href
               reader.onload = function (e) {
                   // 转换完成,创建一个a标签用于下载
                   var a = document.createElement('a');
                   a.download = '立项申请材料.pdf';
                   a.href = e.target.result;
                   a.target = "myFrame";
                   $("body").append(a);     // 修复firefox中无法触发click
                   a.click();
                   $(a).remove();
               }
           }else{
        	   console.log('文件生成失败');
           }
       };
       // 发送ajax请求
       xhr.send()
    }

     

    展开全文
  • 参考博客——tensorflow-TFRecord 文件详解 1. 生成tfrecord文件 代码 #1....tf_record=tf.python_io.TFRecordWriter(tf_record_name) tf.train.Int64List(value=list_data) tf.train.FloatList( ) ...

    参考博客——tensorflow-TFRecord 文件详解

    1. 生成tfrecord文件

    在这里插入图片描述
    代码

    #1.创建tfrecord对象
    tf_record=tf.python_io.TFRecordWriter(tf_record_name)
    
    tf.train.Int64List(value=list_data)
    tf.train.FloatList( )
    tf.train.BytesList()
    
    tf.train.Feature(int64_list=)
    tf.train.Feature(float_list=tf.train.FloatList())
    tf.train.Feature(bytes_list=tf.train.BytesList())
    
    tf.train.Features(feature=dict_data)
    ut = tf.train.Features(feature={"suibian": tf.train.Feature(int64_list=tf.train.Int64List(value=[1, 2, 4])),"a":tf.train.Feature(float_list=tf.train.FloatList(value=[5., 7.]))})
    
    example=tf.train.Example(features=tf.train.Features(...))
    
    #2. 写入example对象序列化后的结果
    tfrecord_writer.write(example.SerializeToString())
    
    

    2. 读取tfrecord文件

    从文件读取有 3 大步骤

    1. 生成读取器,不同类型的文件有对应的读取器

    2. 把文件名列表生成队列

    3. 用读取器的 read 方法读取队列中的文件
      在这里插入图片描述
      在这里插入图片描述

    3 代码

    3.1 dataset_to_tfrecord.py

    在这里插入图片描述

    import os
    import xml.etree.ElementTree as ET
    import tensorflow as tf
    from dataset_config import DIRECTORY_ANNOTATIONS,DIRECTORY_IMAGES,NUM_IMAGES_TFRECORD,labels_to_class
    from utils.data_process_util import int64_feature,float_feature,bytes_feature
    def _convert_to_example(img,img_shape,labels,trunacted,difficult,bndbox_size):
        '''将一张图片使用example,转换成protobuffer 格式
        :param img:
        :param img_shape:
        :param labels:
        :param trunacted:
        :param difficult:
        :param bndbox_size:
        :return:
        '''
        # 为了转换需求,bbox由单个obj的四个位置值,
        # 转变成四个位置的单独列表
        # 即:[[12,120,330,333],[50,60,100,200]]————>[[12,50],[120,60],[330,100],[333,200]]
        ymin=[]
        xmin=[]
        ymax=[]
        xmax=[]
        for b in bndbox_size:
            ymin.append(b[0])
            xmin.append(b[1])
            ymax.append(b[2])
            xmax.append(b[3])
        img_format = b'JPEG'
        print(type(labels))
        for i,label in enumerate(labels):
            labels[i]=labels_to_class[label]
        print('trunacted:',trunacted,type(trunacted),len(trunacted))
    
        example = tf.train.Example(features=tf.train.Features(feature={
            'image/height':int64_feature(img_shape[0]),
            'image/width':int64_feature(img_shape[1]),
            'image/channels':int64_feature(img_shape[2]),
            'image/shape':int64_feature(img_shape),
            'image/object/bbox/xmin':float_feature(xmin),
            'image/object/bbox/ymin':float_feature(ymin),
            'image/object/bbox/xmax':float_feature(xmax),
            'image/object/bbox/ymax':float_feature(ymax),
            'image/object/bbox/label_text':int64_feature(labels),
            # 'image/object/bbox/trunacted':bytes_feature(trunacted),
            # 'image/object/bbox/difficult':bytes_feature(difficult),
            'image/object/bbox/format':bytes_feature(img_format),
            'image/object/bbox/data':bytes_feature(img)# 读取的图像值
        }))
        print(img_format)
        return example
    
    def _process_image(dataset_dir,img_name):
        '''
        读取图像和xml文件
        :param dataset_dir:
        :param img_name:
        :return:
        '''
        #1.读取图像
        #图像路径
        img_path = os.path.join(dataset_dir,DIRECTORY_IMAGES,img_name+'.jpg')
        img = tf.gfile.FastGFile(img_path,'rb').read()#tensorflow读取图像
        #2.读取xml
        #xml路径
        xml_path =os.path.join(dataset_dir,DIRECTORY_ANNOTATIONS,img_name+'.xml')
        tree = ET.parse(xml_path)
        root = tree.getroot()#获取根节点,'annotation'标签
        # 2.1获取图像尺寸信息
        size = root.find('size')
        img_shape=[
            int(size.find('height').text),
            int(size.find('width').text),
            int(size.find('depth').text)
        ]
        #2.2 获取bounding box 相关信息
        # bounding box可能有多个,用多个列表存储相关信息。
        labels = []
        trunacted=[]
        difficult = []
        bndbox_sizes=[]
        bboxes = root.findall('object')
        for obj in bboxes:
            label = obj.find('name').text
            if obj.find('trunacted'):
                trunacted.append(obj.find('trunacted').text)
            else:
                trunacted.append('0')
            if obj.find(''):
                difficult.append(obj.find('difficult').text)
            else:
                difficult.append(0)
            bndbox = obj.find('bndbox')
            bndbox_size=(
                float(bndbox.find('ymin').text)/img_shape[0],
                float(bndbox.find('xmin').text)/img_shape[1],
                float(bndbox.find('ymax').text)/img_shape[0],
                float(bndbox.find('xmax').text)/img_shape[1]
    
            )
            labels.append(label)
            trunacted.append(trunacted)
            difficult.append(difficult)
            bndbox_sizes.append(bndbox_size)
        return img,img_shape,labels,trunacted,difficult,bndbox_sizes
    
    
    def _add_to_tfrecord(dataset_dir,img_name,tfrecord_writer):
        '''
        读取图片和xml文件,保存成一个Example
        :param dataset_dir:根目录
        :param img_name:图像名称
        :param tfrecord_writer:
        :return:
        '''
        #1.读取图片内容及相应的xml文件
        img, img_shape, labels, trunacted, difficult, bndbox_size=_process_image(dataset_dir,img_name)
        # return img,img_shape,labels,trunacted,difficult,bndbox_size
        #2.读取的内容封装成Example,
        example = _convert_to_example(img, img_shape, labels, trunacted, difficult, bndbox_size)
    
        #3.Example序列化结果写入指定tfrecord文件
        tfrecord_writer.write(example.SerializeToString())
    
    def _get_output_tfrecord_name(output_dir,name,fdx):
        """
    
        :param output_dir:
        :param name:
        :param fdx:第几个tfrecord文件
        :return:
        """
        return os.path.join(output_dir,name,'%06d'%fdx+'.tfrecord')
    
    def read_tfrecord():
        slim = tf.contrib.slim
        dataset = slim.dataset
        #第一个参数,文件路径
        file_pattern = os.path.join('tf_records\data','*.record')
        #第二个参数
        reader = tf.TFRecordReader
    
    
        # file_pattern = '%s-*  '  # 前面保存的tfrecord文件的文件名类似于“train-00001-of-00004.tfrecord”
        # file_pattern = os.path.join(dataset_dir, file_pattern % split_name)  # dataset_dir即前面保存的tfrecord文件的路径
    
    
        # 使用slim中的函数tf.FixedLenFeature将tfrecord的example反序列化成存储之前的格式,
        # 字符串格式的用''表示,整型格式的用0表示,其他确定的信息还原为原来的形式,如'jpeg','png'
    
        keys_to_features = {
            'image/object/bbox/data': tf.FixedLenFeature((), tf.string, default_value=''),
            'image/object/bbox/format': tf.FixedLenFeature((), tf.string, default_value='jpeg'),
            'image/height': tf.FixedLenFeature((), tf.int64, default_value=0),
            'image/width': tf.FixedLenFeature((), tf.int64, default_value=0),
            'image/object/bbox/label_text': tf.FixedLenFeature((), tf.int64, default_value=0)}
        # 将反序列化的数据重组为更适合网络读入的格式
        items_to_handlers = {
            'image': slim.tfexample_decoder.Image(
                image_key='image/object/bbox/data',
                format_key='image/object/bbox/format',
                channels=3),
            # 'image_name': tfexample_decoder.Tensor('image/filename'),
            'height': slim.tfexample_decoder.Tensor('image/height'),
            'width': slim.tfexample_decoder.Tensor('image/width'),
            # 'labels_class': tfexample_decoder.Image(
            #     image_key='image/segmentation/class/encoded',
            #     format_key='image/segmentation/class/format',
            #     channels=1)
                }
        # 解码器进行解码,定义一个解码器对象,保存到dataset中
        # 第三个参数decoder
        decoder = slim.tfexample_decoder.TFExampleDecoder(keys_to_features, items_to_handlers)
        # 返回由tfrecord信息所得到的数据集dataset,dataset对象定义了数据集的文件位置,解码方式等元信息
        dataset = dataset.Dataset(
            data_sources=file_pattern,  # tfrecord路径
            reader=tf.TFRecordReader,  # 读取tfrecord文件的方式
            decoder=decoder,  # 解码tfrecord文件的方式
            num_samples=1464,  # PASCAL-VOC2012数据集训练样本数
            items_to_descriptions={  # 样本集图像和标签描述
                'image': 'A color image of varying height and width.',
                'labels_class': ('A semantic segmentation label whose size matches image.'
                                 'Its values range from 0 (background) to num_classes.')},
            num_classes = 3,  # 数据集包含类别数(20个前景类别和1个背景类别)
            multi_label = True)  # 多标签(具体我也不太清楚)
    
        dataset_data_provider = slim.dataset_data_provider
        prefetch_queue = slim.prefetch_queue
    
        # 创建一个DatasetDataProvider类的对象data_provider,根据dataset和其他的一些已知信息读取数据。
        data_provider = dataset_data_provider.DatasetDataProvider(
            dataset,
            num_readers=1,
            num_epochs=None,
            shuffle=True)
        # 通过调用data_provider对象的get实例函数能够根据data_provider中给出的信息解读tfrecord文件,生成图像和标签和图像文件名
        image, height, width = data_provider.get(['image', 'height', 'width'])
        # image_name, = data_provider.get(['image_name'])
        # label = data_provider.get(['label'])
        # 图像预处理过程,这里具体的处理过程与本文主题无关,因此省略具体的处理过程
        return image, height, width
    
    def run(dataset_dir,output_dir,name='data'):
        """
        运行转换代码逻辑。
        存入多个tfrecord文件,每个文件固定N个样本
        :param dataset_dir:数据集目录,包含annotations,jpeg文件夹
        :param output_dir:tfrecords存储目录
        :param name:数据集名字,指定名字以及train or test
        :return:
        """
        # 1. 判断数据集目录是否存在,创建一个目录
        if tf.gfile.Exists(dataset_dir):
            tf.gfile.MakeDirs(dataset_dir)
        # 输出路径需要已存在
        # if tf.gfile.Exists(output_dir):
        #     tf.gfile.MakeDirs(output_dir)
        # 2. 读取某个文件夹下的所有文件名字列表
        dir_path = os.path.join(dataset_dir,DIRECTORY_ANNOTATIONS)
        files_path = sorted(os.listdir(dir_path))
        print(files_path)
        # 3. 循环名字列表,
        # 每200(NUM_IMAGES_TFRECORD)个图片及xml文件存储到一个tfrecord文件中
        num = len(files_path)
        i = 0
        fdx = 0
        while i < num:
            tf_record_name = _get_output_tfrecord_name(output_dir,name,fdx)
            with tf.python_io.TFRecordWriter(tf_record_name) as tf_record_writer:
                j = 0
                while i<num and j < NUM_IMAGES_TFRECORD:
                    xml_path = files_path[i]
                    img_name = xml_path.split('.')[0]
                    #每个图像构建一个Example,保存到tf_record_name中
                    _add_to_tfrecord(dataset_dir,img_name,tf_record_writer)
    
                    j += 1
                    i += 1
    
            fdx += 1
            print('fdx',fdx)
        print('数据集%s转换成功'%(dataset_dir))
    
    
    
    

    3.2 tfrecord文件读取

    在这里插入图片描述

    def read_tfrecord():
        slim = tf.contrib.slim
        dataset = slim.dataset
        #第一个参数,文件路径
        file_pattern = os.path.join('tf_records\data','*.tfrecord')
        #第二个参数
        reader = tf.TFRecordReader
    
    
        # file_pattern = '%s-*  '  # 前面保存的tfrecord文件的文件名类似于“train-00001-of-00004.tfrecord”
        # file_pattern = os.path.join(dataset_dir, file_pattern % split_name)  # dataset_dir即前面保存的tfrecord文件的路径
    
    
        # 使用slim中的函数tf.FixedLenFeature将tfrecord的example反序列化成存储之前的格式,
        # 字符串格式的用''表示,整型格式的用0表示,其他确定的信息还原为原来的形式,如'jpeg','png'
    
        keys_to_features = {
            'image/object/bbox/data': tf.FixedLenFeature((), tf.string, default_value=''),
            'image/object/bbox/format': tf.FixedLenFeature((), tf.string, default_value='jpeg'),
            'image/height': tf.FixedLenFeature((), tf.int64, default_value=0),
            'image/width': tf.FixedLenFeature((), tf.int64, default_value=0),
            'image/object/bbox/label_text': tf.FixedLenFeature((), tf.int64, default_value=0)}
        # 将反序列化的数据重组为更适合网络读入的格式
        items_to_handlers = {
            'image': slim.tfexample_decoder.Image(
                image_key='image/object/bbox/data',
                format_key='image/object/bbox/format',
                channels=3),
            # 'image_name': tfexample_decoder.Tensor('image/filename'),
            'height': slim.tfexample_decoder.Tensor('image/height'),
            'width': slim.tfexample_decoder.Tensor('image/width'),
            # 'labels_class': tfexample_decoder.Image(
            #     image_key='image/segmentation/class/encoded',
            #     format_key='image/segmentation/class/format',
            #     channels=1)
                }
        # 解码器进行解码,定义一个解码器对象,保存到dataset中
        # 第三个参数decoder
        decoder = slim.tfexample_decoder.TFExampleDecoder(keys_to_features, items_to_handlers)
        # 返回由tfrecord信息所得到的数据集dataset,dataset对象定义了数据集的文件位置,解码方式等元信息
        dataset = dataset.Dataset(
            data_sources=file_pattern,  # tfrecord路径
            reader=tf.TFRecordReader,  # 读取tfrecord文件的方式
            decoder=decoder,  # 解码tfrecord文件的方式
            num_samples=1464,  # PASCAL-VOC2012数据集训练样本数
            items_to_descriptions={  # 样本集图像和标签描述
                'image': 'A color image of varying height and width.',
                'labels_class': ('A semantic segmentation label whose size matches image.'
                                 'Its values range from 0 (background) to num_classes.')},
            num_classes = 3,  # 数据集包含类别数(20个前景类别和1个背景类别)
            multi_label = True)  # 多标签(具体我也不太清楚)
    
        dataset_data_provider = slim.dataset_data_provider
        prefetch_queue = slim.prefetch_queue
    
        # 创建一个DatasetDataProvider类的对象data_provider,根据dataset和其他的一些已知信息读取数据。
        data_provider = dataset_data_provider.DatasetDataProvider(
            dataset,
            num_readers=1,
            num_epochs=None,
            shuffle=True)
        # 通过调用data_provider对象的get实例函数能够根据data_provider中给出的信息解读tfrecord文件,生成图像和标签和图像文件名
        image, height, width = data_provider.get(['image', 'height', 'width'])
        # image_name, = data_provider.get(['image_name'])
        # label = data_provider.get(['label'])
        # 图像预处理过程,这里具体的处理过程与本文主题无关,因此省略具体的处理过程
        return image, height, width
    
    展开全文
  • 程序读取Txt   文件路径:   Appliction.dataPath 项目资源路径   Application.streamingAssetsPath    PC:项目资源路径下的streamingAssets文件夹(需要手动创建同名文件夹)“这个目录只能用...

    策划写Excel  ---> 程序解析Excel为Text(letter) --->程序读取Txt

     

    文件路径:

     

    Appliction.dataPath 项目资源路径

     

    Application.streamingAssetsPath 

     

    PC:项目资源路径下的streamingAssets文件夹(需要手动创建同名文件夹)“这个目录只能用WWW读取(PC特例也可以用文件读取去读(FileStream)),且不能修改(PC可以修改)”

    Android:安装在一个assets文件夹

    如果想要把一些程序随文件打包到,即在手机端可以查看,则应该它们放到这一个目录之下。

    IOS:Doucment/app

     

    Application.persistentDataPath:

    可读可写文件目录 

    在不同的平台上这个路径是不一样的

     

    文档操作流程:

    1. 找到目录

    2. 打开

    3. 读写

    4. 关闭

    void Start()
    
        {
    
            //找到文件目录
    
            string path = Application.streamingAssetsPath + "/configer.ll";
    
            //打开文件
    
            StreamReader tmpReader = new StreamReader(path);
    
            //开始读取 "一行行的读"
    
            string line = tmpReader.ReadLine();
    
            Debug.Log("line=" + line);
    
            //查看有多少行
    
            int lineCount = int.Parse(line);
    
            for (int i = 0; i < lineCount; i++)
    
            {
    
                string tmpLine= tmpReader.ReadLine();
    
                Debug.Log("第" + i + "条数据为:" + tmpLine);
    
            }
    
        }

     

    现在丰富文本内容

     

    这样也能读取一行的内容,但是需要切割(读取字符串)

    /// <summary>
    
        /// 对Txt进行读取操作
    
        /// </summary>
    
        public void ReadStream()
    
        {
    
            //找到文件目录
    
            string path = Application.streamingAssetsPath + "/configer.ll";
    
            //打开文件
    
            StreamReader tmpReader = new StreamReader(path);
    
            //开始读取 "一行行的读"
    
            string line = tmpReader.ReadLine();
    
            //Debug.Log("line=" + line);
    
            //查看有多少行
    
            int lineCount = int.Parse(line);
    
            string tmpLine;
    
            string[] tmpArray;
    
            for (int i = 0; i < lineCount; i++)
    
            {
    
                tmpLine = tmpReader.ReadLine();
    
                // Debug.Log("第" + i + "条数据为:" + tmpLine);
    
                tmpArray = tmpLine.Split(' ');
    
                //for (int j = 0; j < tmpArray.Length; j++)
    
                //{
    
                //    Debug.Log("切割后第" + i + "条数据的第" + j + "个数据元素为" +  tmpArray[j]);
    
                //}
    
                PlayerPrefs.SetString(tmpArray[0], tmpArray[1]);
    
            }
    
            tmpReader.Close();
    
        }

     

    现在开始写入数据(这种写入方式比较简单,弊端在于后面写入的内容会完全覆盖之前的内容) 

     /// <summary>
    
        /// 对Txt进行写入操作
    
        /// </summary>
    
        public void WriteStream()
    
        {
    
            //找到目录
    
            string path = Application.streamingAssetsPath + "/configer.ll";
    
            //打开文件
    
            StreamWriter tmpWrite = new StreamWriter(path);
    
            //进行写入操作
    
            tmpWrite.WriteLine("88888888");
    
            tmpWrite.WriteLine("admin 123");
    
            //关闭
    
            tmpWrite.Close();
    
        }
    
    FileStream 读写的是字节流
    
    /// <summary>
    
        /// 利用文件的方式对Txt进行读取操作
    
        /// </summary>
    
        public void FileWriteStream()
    
        {
    
            //找到目录
    
            string path = Application.streamingAssetsPath + "/configer.ll";
    
            //打开文件
    
            FileStream tmpFileStream = new FileStream(path, FileMode.OpenOrCreate);
    
            //将光标跳到从起点开始偏移两个位置
    
            tmpFileStream.Seek(2, SeekOrigin.Begin);
    
            //写入一个字节流
    
            tmpFileStream.WriteByte(12);
    
            //再写入一个
    
            tmpFileStream.WriteByte(34);
    
            //关闭文件读取
    
            tmpFileStream.Close();
    
        }

    解决这个写入小bug,刚才写入的是字节流,我们需要把它们转化为可以识别的字符串

    /// <summary>
    
        /// 将Txt中的字节流转化为可以识别的内容
    
        /// </summary>
    
        public void ReadByte()
    
        {
    
            //找到目录
    
            string path = Application.streamingAssetsPath + "/configer.ll";
    
            //打开文件
    
            FileStream tmpFileStream = new FileStream(path, FileMode.OpenOrCreate);
    
            //将光标跳到从起点开始偏移两个位置
    
            tmpFileStream.Seek(2, SeekOrigin.Begin);
    
            int tmpOne = tmpFileStream.ReadByte();
    
            Debug.Log("第一次读取的内容:" + tmpOne);
    
            int tmpTwo = tmpFileStream.ReadByte();
    
            Debug.Log("第二次读取的内容:" + tmpTwo);
    
            tmpFileStream.Close();
    
        }

    总之:一般就是进行读操作,除了第一次将Excel转化为Txt除外,如果要改数据就直接对配置文件进行修改

    展开全文
  • 机器学习之文件的读取 本文章提取自 文档一 文档二 1.知识补充 机器学习中,读取文件后要把读取到的内容存储在两个列表里(特征文件列表X和状态文件列表y),特征文件列表必须是多行一列,状态文件列表必须是多列一行...
  • HBase之读取数据流程

    千次阅读 2019-07-01 16:21:56
    HBase数据读取流程解析 hbase(二)hfile结构 目录 说明 1.HBase读取数据流程 2.疑问 2.1上述(10)中,需要对满足条件的KeyValue进行从小到大排序合并构建最小堆。 ​​2.1.1为什么Scanner需要有小到大排序...
  • Java中文本文件的读取(按行读取)

    万次阅读 多人点赞 2018-04-29 18:14:44
    在之前的学习过程中,经常会遇到将文本文件中的数据读取到数组或其他数据结构中。每次遇到,总是在网上搜索代码解决,解决之后并没有总结复习,因此在下一次遇到同样的问题时,又重复之前的过程。这样周而复始,并...
  • Java读取文件的四种方式

    万次阅读 2018-09-18 14:52:46
    按字节读取文件内容 按字符读取文件内容 按行读取文件内容 随机读取文件内容    public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件...
  • python读取、写入txt文本内容

    万次阅读 多人点赞 2019-08-22 21:54:28
    读取txt文本 python常用的读取文件函数有三种read()、readline()、readlines() 以读取上述txt为例,看一下三者的区别 read() 一次性读全部内容 一次性读取文本中全部的内容,以字符串的形式返回结果 with open...
  • Java读取文件的方法

    万次阅读 2018-10-21 16:32:11
    读取二进制文件 读取二进制文件,并存入byte数组,如算法训练模型的二进制模型。 public byte[] readFromByteFile(String pathname) throws IOException{ File filename = new File(pathname); ...
  • Python xlrd 读取 Excel 表格基础 一:按行、按列读取Excel数据内容前言:1、获取工作簿、sheet对象2、获取sheet表中行、列对象3、读取sheet对象中所有数据4、按行读取Excel文件所有sheet表数据最后: 前言: 前面...
  • 读取文件操作读取文件操作读取文件操作读取文件操作读取文件操作读取文件操作读取文件操作读取文件操作读取文件操作读取文件操作读取文件操作
  • 使用pandas读取文件

    万次阅读 多人点赞 2018-01-14 16:19:44
    pandas可以将读取到的表格型数据(文件不一定要是表格)转成DataFrame类型的数据结构,然后我们可以通过操作DataFrame进行数据分析,数据预处理以及行和列的操作等。下面介绍一些常用读取文件的方法 1、read_csv...
  • node读取文件操作

    千次阅读 2019-03-09 15:07:53
    导言:nodejs中所有与文件相关的操作都在fs模块中,而读写操作又是我们会经常用到的操作,nodejs的fs模块针对读操作为我们提供了readFile,read, createReadStream三个方法,针对写操作为我们提供了writeFile,write...
  • C语言实现读取文件的简单代码

    千次阅读 2019-08-20 15:56:38
    一、写文件 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> int main() { printf("File :%s\n", __FILE__); printf("Date :%s\n", __DATE__); ...
  • nodejs读取文件

    千次阅读 2018-04-02 21:50:49
    导言:nodejs中所有与文件相关的操作都在fs模块中,而读写操作又是我们会经常用到的操作,nodejs的fs模块针对读操作为我们提供了readFile,read, createReadStream三个方法,针对写操作为我们提供了writeFile,write...
  • sql server下如何读取文件

    热门讨论 2011-10-08 16:00:43
    sql server 下如何读写文件,在sql server下可以读写服务器文件
  • 昨天用C语言写了一下文件读取,发现读出来的全是乱码。这肯定是文字编码不同导致的。    据我查证,C语言的汉字编码方式是由你电脑决定的,所以需要看一下你电脑是什么编码,来确定你需要把文本文件改成...
  • BAT读取文件

    万次阅读 2018-08-03 14:34:11
    @echo off&amp;setlocal enabledelayedexpansion rem 生成文件 tasklist | findstr "Console"&...rem 读取文件第一列 rem type是显示文件内容的命令 for /f %%a in ('type bat.t...
  • linux常用的读取文件内容指令

    万次阅读 2017-11-17 13:51:37
    linux常用于读取文件内容指令主要有以下七种: cat,tac,nl,more,less,head,tailcat 文件名 –将文件内容显示在屏幕上 cat -n 文件名 –将文件内容显示在屏幕上,并显示行号 cat -b 文件名 –将文件内容显示在屏幕...

空空如也

1 2 3 4 5 ... 20
收藏数 3,631,797
精华内容 1,452,718
关键字:

读取