C# 读写文件时抛出异常“System.IO.IOException: 文件“xxx”正由另一进程使用,因此该进程”
问题描述
A程序不断的将日志信息追加到日志文件的末尾,B程序不断的从日志文件中读取最后一行(使用File.ReadLines(string path)
方法)。
在B程序读取的同时A程序执行写入,报出如下错误信息:
System.IO.IOException: 文件“xxx”正由另一进程使用,因此该进程无法访问此文件。
解决方法
因为需要按行读取数据,所以采用File.ReadLines(string path)
方法,但该方法在读取时会锁住文件不让A程序继续写入。若不想禁止对文件的写入,应使用如下参数创建文件流:
new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
如此以来,改写一个ReadLines
方法就好:
public static IEnumerable<string> ReadLines(string path,Encoding encode = null)
{using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, 0x1000, FileOptions.SequentialScan))using (var sr = new StreamReader(fs, encode ?? Encoding.UTF8)){string line;while ((line = sr.ReadLine()) != null){yield return line;}}
}
推荐资料
FileShare枚举的使用(文件读写锁) :https://www.cnblogs.com/jhxk/articles/2628235.html
作者对FileMode、FileAccess、FileShare三个枚举的使用做了详尽的测试,推荐阅读。
C# 读写文件时抛出异常“System.IO.IOException: 文件“xxx”正由另一进程使用,因此该进程”相关推荐
- 使用MyBatis时出现java.io.IOException: Could not find resource com/ee/mybatis/mapper/Usermapper.xml 类似的错误
使用MyBatis时出现java.io.IOException: Could not find resource com/ee/mybatis/mapper/Usermapper.xml 类似的错误的 ...
- C# System.IO.IOException HResult=0x8007000D Message=数据无效。解决办法
C# System.IO.IOException HResult=0x8007000D Message=数据无效.解决办法 HResult=0x8007000D Message=数据无效.解决办法) ...
- 在HttpClient请求的时候,返回结果解析时出现java.io.IOException: Attempted read from closed stream. 异常,解决
在HttpClient请求的时候,返回结果解析时出现java.io.IOException: Attempted read from closed stream. 异常,解决 参考文章: (1)在Ht ...
- fiddler 抓包 System.IO.IOException 由于意外的数据包格式,握手失败
抓安卓模拟器包 1.打开https捕捉, 信任根证书 2.证书手动安装, 基本上就是点下一步, 然后完事了 3.调整连接(这样只有连上这个端口的请求才会捕获) 如: 本机ip地址:8899 模拟器 ...
- 关于碰到优盘插入电脑检测到病毒并且优盘里文件只显示System Volume Information文件夹的问题解决。
关于碰到优盘插入电脑检测到病毒并且优盘里文件只显示System Volume Information文件夹的问题解决. 我曾经也碰到过优盘没怎么用过,去了一趟打印店,之后突然发现插到电脑上,电脑检测到 ...
- hdfs dfs -put_通过HDFS中的`hdfs dfs -put`命令行上传文件时,如何设置一个文件的复制因子?...
hdfs dfs -put When uploading a file by the hdfs dfs -put command line in HDFS, how to set a replicat ...
- Linux1T大文件拷贝,U盘拷贝大于4G的iso文件时提示对于目标文件系统 文件过大解决方法全集...
[文章导读] U盘在我们日常使用过程中已经在广泛的使用了,很多人都喜欢拷贝文件,u盘传输速度上的是非常快的,但是有不少用户在使用U盘过程中遇到问题,u盘不能拷贝超过4G的大文件,提示" U盘 ...
- python打开文件时,找不到文件 FileNotFoundError: [Errno 2] No such file or directory报错
小白一枚,记录学习错误,共同进步 python打开文件时,找不到文件 FileNotFoundError: [Errno 2] No such file or directory报错 UnicodeD ...
- java urlconn 下载慢_使用HttpURLConnection下载文件时出现
java.io.FileNotFoundException彻底解决办法...
import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.RandomAc ...
最新文章
- 协作是企业管理的重点和难点
- 牛客练习赛81 小Q与彼岸花 (分块+可持久化01trie)
- (42)驱动中使用全局变量
- 【Python-pywt】 小波变化库—Pywavelets 学习笔记
- python算法题_python基本算法题(一)
- Apollo进阶课程 ⑥ | 高精地图与自动驾驶的关系
- 学习Spring Boot:(二十六)使用 RabbitMQ 消息队列
- 机器学习与计算机视觉(开篇)
- vpa函数python_Biopython序列比对
- 韩立刚计算机网络——第五章:传输层
- linux进入终端tty3,Linux中终端界面与图形界面之间的切换关系
- 用Python绘制标准时钟
- 金山词霸不断的弹出窗口(金山词霸防欺诈提示),犹如病毒软件
- Python高级-前端-01-HTML和CSS
- The DiskSpace quota of /five is exceeded: quota = 4096 B = 4 KB but diskspace consumed = 402653184
- Python3批量下载网易云音乐热歌榜
- 嵌入式设备的机器码、cpu的id号以及网卡mac地址
- [leetcode]Majority Element II
- RecyclerView的全能适配器,带有header和bottom
- 微信小程序开发实战 ②①(网路请求Promise化)
热门文章
- Flink 系例 之 Connectors 连接 Kafka
- python中print语句添加“f“的用处
- 一文掌握 Go 文件的读取操作
- 想跳槽涨薪的必看!Java开发了解这些自然无惧面试,附面试题
- 国内几大量化交易策略
- 程序员装逼指南(2022年版本)
- w10怎样关闭对计算机更改,w10电脑如何彻底关闭操作中心|w10关闭操作中的方法...
- IDEA如何打包war包
- JavaScript轮播图(面向对象)
- ubuntu新建用户之后只显示$解决办法