标签:VBA 这是一段非常好的代码,来自ozgrid.com,可以使用它来快速排序VBA中的数组。 代码如下: '对一维或二维数组排序....'二维数组可以通过传递适当的列编号作为sortKeys参数来指定其排序键. '函数传递一个引用,因此将对原始数组进行变异....- 二维数组, 单个排序键 ' sortArray myArray, Array(2,3,1) - 二维数组,多个排序键 Function sortArray(ByRef arr As Variant...sortCols Erase arr1 Erase arr2 Erase tmp On Error GoTo 0 sortArray = arr End Function 下面是一个如何处理包含数字的字符串排序的小演示...(可以使用自动筛选来查看默认排序与排序代码的结果对比): Sub smartNumberSort() Dim a, i& ReDim a(1 To 500) a(1) = "Key" For i
本文介绍了C语言中关于文件操作的内容知识,内容较为生涩,没有理解可以多次观看 ---- ---- 一、为什么使用文件 我们在写代码的过程中,有的时候某一些数据我们是想把它保存下来的,而不是说只有在程序运行的时候...计算机文件分为文本文件和二进制文件,文本文件仅由字符的串行构成,除此之外的文件都是二进制文件。...,以前是从键盘中将信息输入到变量里面去 fprintf(stdout, "%d %f %s", s1.n, s1.score, s1.arr); //从标准输出流(屏幕)中将我们存放到变量中的信息打印出来...(结构体tmp)里面 printf("%d %f %s\n", tmp.n, tmp.score, tmp.arr); return 0; } 通过代码运行结果可以看出,我们成功将一组格式化的数据写到字符数组里面...,也成功的将字符串数组里面的内容拿出来,存放到我们想让他存在的变量里面,其实就是将原来的scanf和printf的功能扩大了一个使用的范围 四、文本文件和二进制文件 根据数据的组织形式,我们将数据文件分为文本文件和二进制文件
大致可以看到它们之间的关系,我们可以使用InPutStreamReader来实现字节流到字符流的转换。...1 /** 2 * 以行为单位读取文件,常用于读面向行的格式化文件 3 * 4 * @paramfileName:文件名 5 */ 6 public...e.printStackTrace(); 36 } 37 } 38 } 39 return flag; 40 } 全部代码...int byteread = 0; 42 in = new FileInputStream(file); 43 /* 读入多个字节到字节数组中,byteread...} 93 } 94 } 95 } 96 97 /** 98 * 以行为单位读取文件,常用于读面向行的格式化文件
) 为了输出数据,打开一个二进制文件 建立一个新的文件 “ab”(追加) 向一个二进制文件尾添加数据 出错 “r+”(读写) 为了读和写,打开一个文本文件 出错 “w+”(读写) 为了读和写,建议一个新的文件...建立一个新的文件 “a+”(读写) 打开一个文件,在文件尾进行读写 建立一个新的文件 “rb+”(读写) 为了读和写打开一个二进制文件 出错 “wb+”(读写) 为了读和写,新建一个新的二进制文件 建立一个新的文件...“ab+”(读写) 打开一个二进制文件,在文件尾进行读和写 建立一个新的文件 对于fopen和fclose的使用: #include #include int...根据数据的组织形式,数据文件被称为文本文件或者二进制文件。...); //注:fclose在关闭文件的时候,也会刷新缓冲区 pf = NULL; return 0; } 因为有缓冲区的存在,C语言在操作文件的时候,需要做刷新缓冲区或者在文件操作结束的时候关闭文
文本文件和二进制文件: 根据数据的组织形式,数据文件被称为文本文件和二进制文件. 文本文件:基于字符编码,常见编码有ASCII、UNICODE等,一般可以使用文本编辑器直接打开....实际上,把内存的数据写到文件里叫写或者输出,把文件的数据读到内存里去叫读或者输入....2.Unix和Linux下所有的文本文件行都是 \n 结尾,而Windows所有的文本文件行都是 \r\n 结尾 3.在Windows平台下,以“文本”方式打开文件,不加b: ...以“二进制”方式打开文件,则读 \n 写都不会进行这样的转换. 4.在Unix/Linux平台下,“文本”与“二进制”模式没有区别,“\r\n”作为两个字符原样输出....end of file),在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件,在文本文件中,数据都是以字符的ASCII码值的形式存放,而ASCII码值的范围是
存到数组cbuf中,从off处开始存储,最多读len个字符。 如果已到达流的末尾,则返回 -1。否则返回本次读取的字符数。 详解:共有的方法 int read() 读取单个字符。...最常见的文本文件:.txt,.java,.c,.cpp 等语言的源代码。尤其注意.doc,excel,ppt这些不是文本文件。...2、缓冲流 为了提高数据读写的速度,Java API提供了带缓冲功能的流类,在使用这些流类时,会创建一个内部缓冲区数组,缺省使用8192个字节(8Kb)的缓冲区 源码: private static...向流中写入字节时,不会直接写到文件,先写到缓冲区中直到缓冲区写满, BufferedOutputStream才会把缓冲区中的数据一次性写到文件里。...* 最常见的文本文件:.txt,.java,.c,.cpp 等语言的源代码 * String source 源文件的全路径 * String dist 复制后的文件的全路径
打开文件 fopen(文件名,文件的打开方式) r:对文本文件只读方式(字符ascii) w:对文本文件只写方式(字符ascii) a:对文本文件追加方式(字符ascii) r+,w+,a+对文本文件可读可写方式...fputc(ch,p):把字符ch写到文件指针p所指向的文件中。 例:用fputc函数从键盘逐个输入数据,然后写到磁盘中。...fputc(ch,p); putchar(ch); ch=getchar(); } fclose(p); return 0; } 按照字符读文件...n的字符串,将此字符串存放到字符数组str中。...fputs(str,p):把str所指的字符串写到文件指针p指向的文件中。 例:将3各字符串存储到文件中。
fread用于读写记录,这里的记录是指一串固定长度的字节,比如一个int、一个结构体或者一个定长数组。...个字节保存到ptr中,而fwrite把ptr中的size * nmemb个字节写到文件stream中。...如果当前读写位置已经在文件末尾了,或者读文件时出错了,则fread返回0。如果写文件时出错了,则fwrite的返回值小于nmemb指定的值。...该程序生成的recfile文件是二进制文件而非文本文件,因为其 中不仅保存着字符型数据,还保存着整型数据24和28(在od命令的输出中以八进制显示为030和034)。...(int),nmemb,fp) 注:由于程序生成的文件是二进制文件而非文本文件,因此,不用机器,整数的表达不同, 所以无法直接打开生成文件。
Java IO流 IO是Input/Output的缩写,I/O技术是非常实用的技术,用于处理设备之间的数据传输。如读/写文件,网络通讯等。...流的角色:节点流、处理流 节点流:直接从数据源或目的地读写数据。 处理流:不直接连接到数据源或目的地,而是“连接”在已存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读x写功能。...int read(byte[] b) 从此输入流中将最多b.length个字节的数据读入一个byte数组中。如果因为已经到达流末尾而没有可用的字节,则返回值-1.否则以整数形式返回实际读取的字节数。...存到数组cbuf中,从off处开始存储,最多读len个字符。如果已到达流的末尾,则返回-1。否则返回本次读取的字符数。...向流中写入字节时,不会直接写到文件,先写到缓冲区中直到缓冲区写满,BufferedOutputStream才会把缓冲区中的数据一次性写到文件里。
目录,引入头文件,根据头文件实现c代码 编写Android.mk文件 Ndk编译生成动态库 Java代码load 动态库.调用native代码 ###JNI开发之Java中调用C代码步骤 在java中定义一个要调用的...刷新工程,就能看到多出了两个文件夹 在java中将要调用的c代码加载到java虚拟机中,通过静态代码块的方式 public class DemoActivity extends Activity {...c语言 就是java在方法中传值,然后c通过参数得到数据处理后返回和上面的一样 将c中的字符串数组转成java中的string用到jni.h中的一个方法 jstring (*NewStringUTF...,只允许写数据 “ab” 追加打开一个二进制文件,并在文件末尾写数据 “rt+” 读写打开一个文本文件,允许读和写 “wt+” 读写打开或建立一个文本文件,允许读写 “at+” 读写打开一个文本文件,允许读...对于文件使用方式有以下几点说明: 文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是: r(read): 读 w(write): 写 a(append): 追加 t(text): 文本文件
根据数据的组织形式,数据文件被称为文本文件或者二进制文件。...fwrite(&a, 4, 1, pf);//二进制的形式写到文件中 fclose(pf); pf = NULL; return 0; } 在文件夹中直接打开文件: 如图,以二进制的形式写入的数据我们是看不懂的...feof 如果返回非0,说明是在文件末尾结束 牢记:在文件读取过程中,不能用feof函数的返回值直接用来判断文件的是否结束。...二进制文件的读取结束判断,判断返回值是否小于实际要读的个数。 例如: fread判断返回值是否小于实际要读的个数,返回值小于count,还可以继续读;返回值等于count,已经读到文件末尾。...,C语言在操作文件的时候,需要做刷新缓冲区或者在文件操作结束的时候关闭文件。
用字节流复制文本文件时,文本文件也会有中文,但是没有问题,原因是最终底层操作会自动进行字节拼接成中文,如何识别是中文的呢?...汉字在存储的时候,无论选择哪种编码存储,第一个字节都是负数 2.编码表 什么是字符集 是一个系统支持的所有字符的集合,包括各国家文字、标点符号、图形符号、数字等 l计算机要准确的存储和识别各种字符集符号...=-1) { // System.out.print((char)ch); // } //int read(char[] cbuf):一次读一个字符数组数据...,排序后再次写到本地文件 实现步骤 将文件中的数据读取到程序中 对读取到的数据进行处理 将处理后的数据添加到集合中 对集合中的数据进行排序 将排序后的集合中的数据写入到文件中 代码实现 public class...,排序后再次写到本地文件 //分析: //1.要把文件中的数据读取进来。
在文件读写中,这个方法一般没什么用,但在从网络读取数据时,可以根据该方法的返回值在网络有足够数据时才读,以避免阻塞。...,比如,在BufferedOutputStream中,调用flush会将其缓冲区的内容写到其装饰的流中,并调用该流的flush方法。...在调用write方法的过程中,如果数组大小不够,会进行扩展,扩展策略同样是指数扩展,每次至少增加一倍。...BufferedInputStream内部有个字节数组作为缓冲区,读取时,先从这个缓冲区读,缓冲区读完了再调用包装的流读,它的构造方法有两个: public BufferedInputStream(InputStream...本节介绍的流不适用于处理文本文件,比如,不能按行处理,没有编码的概念,下一节,就让我们来看文本文件和字符流。
二进制文件的读取结束判断,判断返回值是否小于实际要读的个数。...例如: fread判断返回值是否小于实际要读的个数 文本文件的例子: int main(void) { int c; // 注意:int,非char,要求处理EOF FILE* fp = fopen...size_t ret_code = fread(b, sizeof * b, SIZE, fp); // 读 double 的数组 // 使用fread函数从文件中读取数据到数组b中。...sizeof *b得到数组中一个元素的大小,SIZE表示元素 的数量。 // fread函数返回实际读取到的元素数量,存储在ret_code中。...(pf); //注:fclose在关闭文件的时候,也会刷新缓冲区 pf = NULL; return 0; } 因为有缓冲区的存在,C语言在操作文件的时候,需要做刷新缓冲区或者在文件操作结束的时候关闭文件
文件操作:二进制文件和文本文件的区别。二进制文件将数据在内存中存在的模式原封不动的搬到文件中,而文本文件是将数据的asc码搬到文件中。...读: ifstream ifs(“c://1.txt”); char buf[100]; ifs.read(buf,100); MessageBox(buf); 当我们写的代码改为...这是因为在用文本文件方式读写的时候,碰到了asc码为10的字符,都将被转换,写文件的时候将10前面加上13写到了文件中,读文件读到13和10,将这两个字符换成一个10.注意在用ultraEdit看的时候不要转成...文本文件和二进制文件的区别: 文件文件是一种特殊的二进制文件,当它遇到回车键10时,写入文件时会自动地在它的前面加一个13,而读出文件时遇到13 10 的组合时,又把它还原到10。...这个指针和CString内部字符数组的地址是相等的。
对象的指针 打开方式如下: “r”(只读) 为了输入数据, 打开一个已经存在的文本文件出错 “w”(只写) 为了输出数据,会覆盖原数据 打开一个文本文件建立一个新的文件 “a”(追加) 向文本文件尾添加数据...出错 “r+”(读写) 为了读和写,打开一个文本文件 出错 “w+”(读写) 为了读和写,建;立一个新的文件 建立一个新的文件 “a+”(读写) 打开一个文件,在文件尾进行读写 建立一个新的文件 “rb...+”(读写) 为了读和写打开一个二进制文件 出错 “wb+”(读写) 为了读和写,新建一个新的二进制文件 建立一个新的文件 “ab+”(读写) 打开一个二进制文件,在文件尾进行读和写 建立一个新的文件...所以我们可以对代码中读文件的循环操作进行改进,改进后可以直接将文件中的内容全部读取出来。...如上我们只需进行二次读,就可以将下一行读出,在进行第二次读取时会从第一次读取后面的位置开始。
从二进制角度,我们通过一个简单的例子解释下文本文件与二进制文件的区别,比如说要存储整数123,使用二进制形式保存到文件test.dat,代码为: DataOutputStream output = new...编码 在文本文件中,编码非常重要,同一个字符,不同编码方式对应的二进制形式可能是不一样的,我们看个例子,对同样的文本: hello, 123, 老马 UTF-8编码,十六进制为: ?...,我们可以改进上面的读文件代码,确保将所有文件内容读入: Reader reader = new InputStreamReader( new FileInputStream("hello.txt...之所以要将char数组/String与Reader/Writer进行转换也是为了能够方便的参与Reader/Writer构成的协作体系,复用代码。...=null){ writer.close(); } } } 按行将多行数据写到文件 参数为文件名、编码类型、行的集合,代码为: public static
Java程序在执行的时候,是在内存进行的,外部的数据需要读写到内存才能处理;而在内存中的数据是随着程序结束就消失的,有时候我们也需要把数据输出到外部文件。...IOException; //将字符数组 cbuf[] 写到输出流 。...---- 以上这两个例子中,还需要注意的几个地方: 1、只有在写文件的时候才需要flush()方法,而读是不需要的。 2、读、写 完毕都需要调用close() 方法关闭流。...在计算机层面,Java对磁盘进行操作,IO是有缓存的,并不是真正意义上的一边读一边写,底层的落盘(数据真正写到磁盘)另有方法。...字符流一般用于处理纯文本类型的文件,如TXT文件等,但不能处理图像视频等非文本文件。 用一句话说就是:字节流可以处理一切文件,而字符流只能处理纯文本文件。 含有汉子的文件就使用字符流处理。
(2)在文件上进行以下操作:口使用fread函数读二进制数据。口使用fwrite函数写二进制数据。口使用fgets/fgetl函数从文本文件中逐行读字符串。...写二进制数据 fwrite函数用指定的格式将矩阵的元素写到文件,并返回已写的元素数,其调用格式如下: ?...读文件test1.dat的指定数据,并写到文件test2.dat上 ? 取得文件指针的位置 在MATLAB中提供了ftell函数用于获取文件指针的位置。...从文本文件逐行读字串 在MATLAB中提供了fgetl与fgets函数来实现从文本文件读字符串行,并且将它们存储在字符串向量中。...fgetl函数只用于文本文件。 fgets函数 在MATLAB中提供了fgets函数从文件中读一行,并保留换行符。
为了输入数据,打开一个二进制文件 出错 “wb”(只写) 为了输出数据,打开一个二进制文件 建立一个新的文件 “ab”(追加) 向一个二进制文件尾添加数据 出错 “r+”(读写) 为了读和写,打开一个文本文件...出错 “w+”(读写) 为了读和写,建议一个新的文件 建立一个新的文件 “a+”(读写) 打开一个文件,在文件尾进行读写 建立一个新的文件 “rb+”(读写) 为了读和写打开一个二进制文件 出错 “wb...+”(读写) 为了读和写,新建一个新的二进制文件 建立一个新的文件 “ab+”(读写) 打开一个二进制文件,在文件尾进行读和写 建立一个新的文件 实例代码: #include #include...流是这个,如果让外部设备和内存之间有联系,那么就需要各种类型的操作,每种不同的硬件都是不一样的,所以就有了流,我们只需要将信息放到流里面就可以读或写到各种外部设备上了。...); printf("刷新缓冲区\n"); fflush(pf);//刷新缓冲区时,才将输出缓冲区的数据写到文件(磁盘) //注:fflush 在高版本的VS上不能使用了 printf("再睡眠
领取专属 10元无门槛券
手把手带您无忧上云