writefile(用writefile函数可以修改文件内容吗)
本文目录
- 用writefile函数可以修改文件内容吗
- 为什么我的writefile写入文件的数据是乱码
- 如何让WriteFile立即生效
- 如何使用WriteFile将数据写到文件末尾
- cvi中writefile函数怎么使用
- writefile 多线程写多文件 该如何做
用writefile函数可以修改文件内容吗
using System;using System.Collections.Generic;using System.IO;namespace ConsoleApplication1{class Program{static void Main(string args){String wenjian = " ";char y;int q = 1;DirectoryInfo MydirInfo = new DirectoryInfo(@"F:\aaa\abc1");FileInfo FilesInDir = MydirInfo.GetFiles();foreach (FileInfo file in FilesInDir){Console.WriteLine("{0}", file.Name);}Console.WriteLine("请输入你要修改文件:");wenjian = Console.ReadLine();FileInfo ff = new FileInfo(@"F:\aaa\abc1\" + wenjian + ".txt");DirectoryInfo qMydirInfo = new DirectoryInfo(@"F:\aaa\abc2");FileInfo qFilesInDir = qMydirInfo.GetFiles();foreach (FileInfo file in qFilesInDir){if (q 《= q){q++;}}ff.CopyTo(@"F:\aaa\abc2\" + wenjian + "_" + q + ".txt");FileStream jl = new FileStream(@"F:\aaa\jilu\" + wenjian + "_" + q + ".txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);StreamWriter j = new StreamWriter(jl);StreamReader l = new StreamReader(jl);l.BaseStream.Seek(0, SeekOrigin.Begin);j.WriteLine("修改时间为:{0}",ff.CreationTime);j.Flush();jl.Flush();j.Close();Console.Clear();foreach (FileInfo file in FilesInDir){if (wenjian + ".txt" == file.Name){FileStream qq = new FileStream(@"F:\aaa\abc1" + "\\" + wenjian + ".txt", FileMode.Open, FileAccess.ReadWrite);StreamWriter gg = new StreamWriter(qq);for (int i = 0; i 《 200; i++){Console.WriteLine("请修改:");string xiugai = Console.ReadLine();gg.WriteLine(xiugai);Console.WriteLine("修改成功是否还需要添加信息YES/NO");y = Convert.ToChar(Console.ReadLine().ToLower());Console.Clear();if (y == ’y’){continue;}else{break;}}gg.Flush();gg.Close();qq.Close();}}Console.ReadLine();}}}
为什么我的writefile写入文件的数据是乱码
这个不是你程序的问题,是Windows记事本的Bug,因为程序输出的某些字符触发了这个bug,记事本把文件当成unicode编码处理,结果乱码。把这句ofile《《a《《" "; 换了一下顺序改成ofile《《" "《《a; 就不会乱码了。记事本这样的bug很多,比如记事本新建一个文本,打开以后输入:联通 这两个字, 保存 ,关闭记事本。 再打开,你看看变成什么了?有一个开玩笑的说法是因为中国联通把微软中国得罪了…… 记事本保存的时候,默认使用ansi编码 但是用ansi编码呢,联通这两个字的开头正好是:fffe..... 这样的,于是再打开呢,他就以为是utf-8编码了,但是按照utf-8来解码呢,却造成乱码了
如何让WriteFile立即生效
WriteFile函数通常是将数据写入到内部缓冲区,然后OS会定期将缓冲区中的数据写入到磁盘。如果想在调用WriteFile之后,数据就立即写入磁盘,有如下三种方法:1. 调用FlushFileBuffers(hFile);Flushes the buffers of a specified file and causes all buffered data to be written to a file.BOOL FlushFileBuffers( HANDLE hFile // open handle to file whose buffers are to be flushed );该函数会将指定文件的缓存数据写入磁盘。2. 在用CreateFile创建文件的时候,第6个参数使用标志FILE_FLAG_WRITE_THROUGHInstructs the operating system to write through any intermediate cache and go directly to disk. The operating system can still cache write operations, but cannot lazily flush them.3. 关闭掉句柄CloseHandle(hFile);
如何使用WriteFile将数据写到文件末尾
方法1:用append模式打开文件,然后写入数据方法2:用读写模式打开,使文件指针移动到文件末尾,然后写入数据方法3:用读模式打开文件,用写和建立模式打开新文件,读取原文件内容,写入新文件,再将新文件中追加写入新的数据,将原文件改名为备份文件名,将新文件改名为原文件名
cvi中writefile函数怎么使用
WriteFile函数通常是将数据写入到内部缓冲区,然后OS会定期将缓冲区中的数据写入到磁盘。如果想在调用WriteFile之后,数据就立即写入磁盘,有如下三种方法:1. 调用FlushFileBuffers(hFile);Flushes the buffers of a specified file and causes all buffered data to be written to a file.BOOL FlushFileBuffers( HANDLE hFile // open handle to file whose buffers are to be flushed );该函数会将指定文件的缓存数据写入磁盘。2. 在用CreateFile创建文件的时候,第6个参数使用标志FILE_FLAG_WRITE_THROUGHInstructs the operating system to write through any intermediate cache and go directly to disk. The operating system can still cache write operations, but cannot lazily flush them.3. 关闭掉句柄CloseHandle(hFile);
writefile 多线程写多文件 该如何做
下面的程序,编译之后,你可以运行很多个实例,目前我将文件写在了D:\1.txt,每个程序写1000行数据,这些值你可以自己更改(比如 写在C:,每个程序写10000行等),等程序都写完后,你可以去文件中查看写文件的结果。补充一下,我是在VC6.0环境中写的,所以windows.h,如果你不是在这个环境中的话,可能需要修改一些定义,比如DWORD等。其他的API都是windows平台提供的API;#include 《stdio.h》#include "windows.h"int main(){//获取进程ID,因为你希望是多个进程运行同时写一个文件,所以,我们打印出进程IDDWORD dwProcessID = GetCurrentProcessId();//初始化我们要写入文件中的内容,及该内容长度;char szContent = {0};sprintf(szContent,"process write file\r\n",dwProcessID);DWORD dwContentLen = strlen(szContent);//创建互斥量,这样可以进行进程间的互斥,当然用这个也可以做线程间的互斥HANDLE hMutex = CreateMutex(NULL,FALSE,"MyFileMutex");if (NULL == hMutex){printf("Create/Open Mutex error!\r\n",dwProcessID);return 1;}//创建或打开文件HANDLE hFile = CreateFile("D:\\1.txt",GENERIC_READ | GENERIC_WRITE,FILE_SHARE_WRITE | FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_ARCHIVE,NULL);if (INVALID_HANDLE_VALUE == hFile){printf("Creat/Open file error!\r\n",dwProcessID);return 1;}//循环写入文件for(int i = 0; i 《 1000 ; i++){//等待临界资源,即锁定文件WaitForSingleObject(hMutex,INFINITE);printf("Process Get the signal\r\n",dwProcessID);DWORD len = 0;//因为是共享写文件,即多个程序写一个文件,所以一定要将文件指针偏移到尾部SetFilePointer(hFile,0,NULL,FILE_END);//写入文件BOOL rnt = WriteFile(hFile,szContent,dwContentLen,&len,NULL);if (rnt == FALSE){printf("Process Fail to write file\r\n",dwProcessID);}//释放互斥量,解除锁定ReleaseMutex(hMutex);//加个Sleep便于我们中间观察结果Sleep(30);}CloseHandle(hMutex);CloseHandle(hFile);return 0;} 应你要求,我把AIP中的宏定义解释如下:HANDLE hFile = CreateFile("D:\\1.txt",GENERIC_READ | GENERIC_WRITE,//表示程序对该文件有读和写的权限FILE_SHARE_WRITE | FILE_SHARE_READ,//表示可以多个程序共享读和写的权限NULL,OPEN_ALWAYS,//表示打开该文件,如果该文件不存在,则创建该文件FILE_ATTRIBUTE_ARCHIVE,//文件的属性为存档NULL);WaitForSingleObject(hMutex,INFINITE);//INFINITE表示永远等待,直到hMutex有信号为止SetFilePointer(hFile,0,NULL,FILE_END);//FILE_END表示从文件尾部开始偏移;实际此举就是将文件指针偏移到文件尾部;
本文相关文章:
nba2006修改器(NBA2006中为什么用了修改器,球员都看不见了)
2024年7月31日 23:20
小米手机图库文件在哪里,如何查看?小米图库照片加密就没有了,怎么找到啊
2024年7月30日 04:50
DTMV4怎么用啊求详细使用方法,放在魔兽哪个文件夹里?DTMV4怎么用
2024年7月28日 21:10
QQ性别修改器怎样使用?QQ级别修改器能真正的修改QQ的级别吗
2024年7月28日 02:15
360文件管理器(怎么通过360超级文件管理器将手机里的音乐转到SD卡)
2024年7月26日 08:30
apk文件怎么转化android工程文件!?app和apk分别是什么意思
2024年7月24日 07:42
MP3文件 比特率的128和320有什么区别?QQ音乐高品质MP3码率是多少的
2024年7月23日 16:02
穿越火线安装包(穿越火线安装包卸载之后还在吗,在哪个文件夹)
2024年7月23日 13:39
另一个程序正在使用此文件(电脑删除文件提示“另一个程序正在使用此文件”怎么办)
2024年7月23日 09:25
谁知道商务通恒基伟业手机(就是天天做广告的那个)支持什么格式的视频文件?商务通手机和智能手机,有什么区别
2024年7月23日 07:44
迅雷垃圾箱删除的文件怎么恢复?迅雷垃圾箱里清空的东西怎么恢复
2024年7月22日 05:05
八门神器iphone(谁知道八门神器怎么用,我怎么修改不好,我是苹果手机)
2024年7月19日 06:20
更多文章:
红魔手机怎么样好不好(电竞手机红魔mars好不好稳定性怎么样)
2023年10月3日 05:42
小米红米k20pro(redmik20pro处理器相当于骁龙)
2023年1月7日 11:30
中兴电视盒子刷机包(中兴盒子adb二维码盒子密码 中兴电视盒子这么来刷机)
2024年6月30日 15:42
一加7系列手机对比(一加7pro和华为p30pro哪个好-一加7pro和华为p30pro测评)
2024年9月12日 21:00
联想天逸510sbios设置(联想天逸的机器怎么样进入BIOS设置)
2023年8月3日 13:30
钢铁侠3电影完整版免费观看(如何梳理至今为止漫威电影宇宙的时间线及每一年的重大事件)
2023年9月3日 14:30
g500时光铭刻版(奔驰g500时光铭刻版与普通版有什么区别)
2024年5月23日 13:33
750ti和950哪个好(电脑配置,显卡上750Ti还是950好呢)
2023年6月28日 19:10
联通转小米吃到饱套餐(怎么看待小米吃到饱联通制式的sim卡)
2023年3月26日 14:30
诺基亚c5手机价格(请问诺基亚C5手机现在要多少钱性能怎么样最好祥细一点,谢谢了.)
2024年4月17日 06:35