dest

java复制文件的4种方式

家住魔仙堡 提交于 2019-12-12 15:17:48
一、使用FileStreams复制 这是最经典的方式将一个文件的内容复制到另一个文件中。 使用FileInputStream读取文件A的字节,使用FileOutputStream写入到文件B。 这是第一个方法的代码: 1 private static void copyFileUsingFileStreams(File source, File dest) 2 throws IOException { 3 InputStream input = null; 4 OutputStream output = null; 5 try { 6 input = new FileInputStream(source); 7 output = new FileOutputStream(dest); 8 byte[] buf = new byte[1024]; 9 int bytesRead; 10 while ((bytesRead = input.read(buf)) != -1) { 11 output.write(buf, 0, bytesRead); 12 } 13 } finally { 14 input.close(); 15 output.close(); 16 } 17 } 正如你所看到的我们执行几个读和写操作try的数据,所以这应该是一个低效率的,下一个方法我们将看到新的方式。

几个多字节和UNICODE及UTF-8之间相互转化的函数(转)

杀马特。学长 韩版系。学妹 提交于 2019-12-12 10:51:04
https://blog.csdn.net/mao0514/article/details/85986411 做vc++开发免不了多字节UNICODE、UTF-8转来转去,下面贴出我写的几个字符转化函数  1、 TCHAR 和CHAR转化, TCHAR 对应UNICODE和多字节下分别是WCHAR 和CHAR 函数如下:   需要注意*dest是new出来的需要释放 /char 字符串转化为tchar字符串 void C2T(TCHAR** dest, const char* src) { #ifdef _UNICODE if (src == NULL) { return ; } size_t alen = strlen(src) + 1; size_t ulen = (size_t)MultiByteToWideChar(CP_ACP, 0, src,alen,NULL, 0 )+1; *dest = new WCHAR[ulen]; ::MultiByteToWideChar(CP_ACP, 0, src, alen, *dest, ulen); #else //多字节TCHAR就是 char  int len = strlen(src)+1; *dest = new char[len]; strcpy(*dest, src); #endif } 2、TCHAR转化为多字节

subId、slotId、SubscriptionInfo和SubscriptionManager的解释及关系说明

杀马特。学长 韩版系。学妹 提交于 2019-12-11 16:01:27
1. subid和slotid(phoneid) slotid(phoneid)是指卡槽: 双卡机器的卡槽1值为0,卡槽2值为1,依次类推。 subid: SubscriptionId(Subscription Identifier)。subid是数据库telephony.db的表siminfo的主键递增项,其中telephony.db在"/data /user_de/0/com.android.providers.telephony/databases"下。subid的值从1开始,每插入一个新卡,subId的值就会加1。插入双卡后数据库中就会有subid值为1和2的两个数据条目,拔卡插卡交换卡槽后,数据库并不会增加新项,只有插入一张新的sim卡才会增加一条id为3的数据条目。 注意: subid对应卡,slotid对应卡槽 2. Subscription和SubscriptionInfo 每一张SIM卡都对应一个Subscription,用谁家的SIM卡就相当于订阅(Subscription)谁家的业务。 SIM卡的信息就是SubscriptionInfo(Subscription Information),比如iccid、MNC、MCC等,多张SIM卡就有多个SubscriptionInfo。 其中ICCID:Integrate circuit card identity

memcpy和memmove使用区别

余生长醉 提交于 2019-12-09 15:11:13
memcpy函数原型 void * memcpy ( void * dest , const void * src , size_t n ) ; man手册描述:memcpy()函数从内存区域src复制n个字节到内存区域dest。内存区域不能重叠。如果内存区域重复使用memmove memcpy实现 void * memcpy ( void * dest , const void * src , size_t n ) { char * dp = dest ; const char * sp = src ; while ( n -- ) * dp ++ = * sp ++ ; return dest ; } memmove函数原型 void * memmove ( void * dest , const void * src , size_t n ) ; man手册描述:memmove()函数将n个字节从内存区域src复制到内存区域dest 首先将字节复制到不重叠的src或dest的临时数组中,然后将这些字节从临时数组复制到dest。 memmove实现 ```handlebars void * memmove ( void * dest , const void * src , size_t n ) { unsigned char tmp [ n ] ; memcpy ( tmp

手机移动端返回顶部js代码

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-09 10:08:47
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>手机移动端返回顶部js代码</title> <script src="http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script> </head> <body style="background-color: #dddfff;"> <div class="headeline"></div> <p style="font-size:24px;color:red;text-align: center;">手机往下滑动即可显示返回顶部按钮!</p> <!--演示内容开始--> <div style="height:2000px;"></div> <!--演示内容结束--> </body> <script> var scrolltotop={ setting:{ startline:100, //起始行 scrollto:0, //滚动到指定位置 scrollduration:400, //滚动过渡时间 fadeduration:[500,100] //淡出淡现消失 }, controlHTML:'<img src=

Java之System类

情到浓时终转凉″ 提交于 2019-12-08 18:28:26
System类概述 java.lang.System 类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有: public static long currentTimeMillis() :返回以毫秒为单位的当前时间。实际上,currentTimeMillis方法就是 获取当前系统时间与1970年01月01日00:00点之间的毫秒差值 public class SystemDemo { public static void main(String[] args) { //获取当前时间毫秒值 System.out.println(System.currentTimeMillis());//1575800449598 } } public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) :将数组中指定的数据拷贝到另一个数组中。 数组的拷贝动作是系统级的,性能很高。System.arraycopy方法具有5个参数,含义分别为: package Demo05; import java.util.Arrays; public class SystemArrayCopy { public static void main

C语言内存操作函数的实现

泪湿孤枕 提交于 2019-12-08 17:23:02
>memcpy: void *memcpy(void *dest,const void *source,size_t num); (1)函数memcpy从source的位置开始向后复制num个字节的数据到dest的内存位置。 (2)这个函数在遇到'\0'的时候并不会停下来。 (3)如果source和dest有任何的重叠,复制的结果都是未定义的。 void *my_memcpy(void *dest, const void *str, int size) { assert(dest); assert(str); assert(size > 0); while (size--){ *(char *)dest = *(char *)str; (char *)dest = (char *)dest + 1; (char *)str = (char *)str + 1; } return dest; } 适用于dest>source,如果dest<source就会内存从叠问题,从前往后拷贝时前一个会把后一个覆盖num个字节。这时就需要用到memmove。 >memmove: void *memmove (void *dest,const char *str,int size); (1)和memmove的差别就是memmove函数处理的源内存块的目标内存块是可以重叠的。 (2

C-基础:memcpy、memset、memmove、memcmp、memchr

流过昼夜 提交于 2019-12-07 09:19:27
一,原型 void * memcpy ( void * destination, const void * source, size_t num ); 功能: 将以source作为起始地址的数据复制num个字节到以destination为起始地址的数据中,不支持destination和source重叠的情况。函数返回destination指针。 void * memcpy ( void * destination,constvoid* source,size_t num ) {    char * pdes =( char * )destination;    char * psrc =( char * )source;   assert(destination !=NULL && source !=NULL && num> 0 );    while (num-- )      *pdes++=*psrc++ ;    return destination; } void * memmove ( void * destination, const void * source, size_t num ); 功能: 将以source作为起始地址的数据的num个字节移动到以destination为起始地址的数据中,支持destination和source重叠的情况

C语言中memset-memcpy(memmove memccpy)-strcpy函数源代码

主宰稳场 提交于 2019-12-07 09:18:46
一、概述 1、memset 原型:extern void *memset(void *buffer, char c, int count); 用法:#include <string.h> 功能:把buffer所指内存区域的前count个字节设置成字符c 说明:返回指向buffer的指针 2、 memcpy 原型:extern void *memcpy(void *dest, void *src, unsigned int count); 用法:#inclue <string.h> 功能:由src所指内存区域复制count个字节到dest所指内存区域 说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针 memccpy 原型:extern void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count); 用法:#include <string.h> 功能:由src所指内存区域复制不多于count个字节到dest所指内存区域,如果遇到字符ch则停止复制 说明:返回指向字符ch后的第一个字符的指针,如果src前count个字节中不存在ch则返回NULL。 memmove 原型:extern void *memmove(void *dest, const void *src,

c语言| |memcpy函数与memmove函数

会有一股神秘感。 提交于 2019-12-07 09:18:16
memcpy和memmove函数 memcpy函数 1.源函数 void * memcpy ( void * dest , const void * src , size_t n ) 2.作用 (小编自己的理解)内存拷贝。从src内存空间移动n个元素,将其赋值给dest的内存中,从内存中第一个地址所指向的数据开始赋值,直到赋值n个数据,该函数调用结束,同时返回dest,即返回被赋值的内存的起始位置。返回dest的意义是可是增加链接属性。 memcpy函数实现 : (my_memcpy) 原谅小编没有找到源代码 #include <assert.h> //包含assert函数的头文件 #define my_type int //自己定义要进行内存赋值的数据类型 ​ my_type * my_memcpy ( my_table * dest , const my_type * src , size_t n ) { my_type * start = dest ; //用于返回dest的初始地址,使该函数具有链接属性 assert ( dest != NULL ); //断言dest与src不是空地址 assert ( src != NULL ); while ( n -- ) { * dest ++ = * src ++ ; } return start ; }