在C语言中把内容写入到文件的指定位置

在C语言中把内容写入到文件的指定位置,第1张

可以使用fseek()来指定文件位置

函数原型:int fseek(FILE *stream, long offset, int fromwhere)

函数说明:函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere(偏移起始位置:文件头0(SEEK_SET),当前位置1(SEEK_CUR),文件尾2(SEEK_END))为基准,偏移offset(指针偏移量)个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。

返回值:如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置,函数返回一个非0值。

示例:向test.txt的末尾添加“this is a text"的字符串。

   #include <stdio.h>

#include <string.h>

int main()

{

const char * szwrite = " this is a text"

FILE *fp = fopen("test.txt", "a+")

if (fp==0) {

printf("can't open file\n")

return 0

}

fseek(fp, 0,SEEK_END)

fwrite(szwrite, strlen(szwrite) * sizeof(char), 1, fp)

fclose(fp)

return 0

}

* 拷贝文件,

* @param oldPath 旧文件路径

* @param newPath 新文件路径

* @throws Exception

*/

private void copyFile(String oldPath, String newPath) throws Exception{

int bytesum = 0

int byteread = 0

File oldFile = new File(oldPath)

InputStream in = null

OutputStream out = null

if(oldFile.exists()){

try {

in = new FileInputStream(oldPath)

out = new FileOutputStream(newPath)

byte[] buffer = new byte[1024*5]

while((byteread = in.read(buffer)) != -1){

bytesum += byteread

System.out.println(bytesum)

out.write(buffer, 0, byteread)

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace()

throw new Exception("输入myeclipse的路径不正确")

}finally{

if(in != null)

in.close()

if(out != null)

out.close()

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11438181.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存