想请问大家有没有什么办法?谢谢了!
22 个解决方案
#1
用两个文件
或者读到内存中以后,关闭streamreader
再streamwriter
或者读到内存中以后,关闭streamreader
再streamwriter
#2
这么用可不是办法,以文件做为数据交换中介,看看传感器的sdk吧,应该不用从文件读的;
#3
我现在无法访问它建立的那个文件
#4
传感器没有SDK之类的东西啊。很晕。
#5
能不能获取它的进程让其睡眠一会呢?
#6
能不能写个程序先复制这个txt然后,读取这个复制的txt
#7
看看打开文件的方式,不要用独占打开,你试下
#8
用共享方式打开!
#9
对同一个文件,不能同时读写,这是一种保护。就是锁定。
如果你想读取那个txt文件,就必须在其写操作完成后再去读。
或者看看那个写的软件是否可以进行某些设定之类的。
如果你想读取那个txt文件,就必须在其写操作完成后再去读。
或者看看那个写的软件是否可以进行某些设定之类的。
#10
同一楼,可能是你没有关闭
#11
不知道传感器在写文件的时候有没有开读权限出来
只要有读权限,你就可以用下面的代码把文件装载到内存后慢慢处理,也不会影响到传感器的写操作
[C# Code]
Stream original = File.Open(Path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
byte[] filebyte = new byte[original.Length];
original.Seek(0, SeekOrigin.Begin);
original.Read(filebyte, 0, filebyte.Length);
original.Close();
original.Dispose();
using (MemoryStream dbf = new MemoryStream(filebyte))
{
}
[/C# Code]
只要有读权限,你就可以用下面的代码把文件装载到内存后慢慢处理,也不会影响到传感器的写操作
[C# Code]
Stream original = File.Open(Path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
byte[] filebyte = new byte[original.Length];
original.Seek(0, SeekOrigin.Begin);
original.Read(filebyte, 0, filebyte.Length);
original.Close();
original.Dispose();
using (MemoryStream dbf = new MemoryStream(filebyte))
{
}
[/C# Code]
#12
两个线程肯定不能同时使用独占资源的,找一个中间载体吧
#13
11楼的想法不错
#14
建议用数据库,
#15
高速去读写txt文件是不现实的
#16
好像很矛盾啊,他都没写完,你读的是啥啊? 他一边写,你一边读? 你能保证你读到的是完整的数据吗?
他里面一直在变化的啊
还有就是最关键的:
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
他里面一直在变化的啊
还有就是最关键的:
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
#17
遇到类似问题,求解啊
#18
用数据库就完全可以了
数据库是可以支持你的这个要求的
简单问题不要用复杂方式实现
你是客户
让他们提供数据库的形式
要是放放数据库一个查询就实现了
数据库是可以支持你的这个要求的
简单问题不要用复杂方式实现
你是客户
让他们提供数据库的形式
要是放放数据库一个查询就实现了
#19
其实按说,文件写的时候应该是可读的。FileShare你试试,不过这个比较耗内存的,想对于普通的Stream。
例子:(没编译,复制到自己那试试)
FileStream fsw = new FileStream("C:\\shareFile.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
Thread writeWorker = new Thread((ThreadStart)delegate
{
while (true)
{
fsw.Seek(0,SeekOrigin.Begin);
byte[] writeBuffer = Encoding.UTF8.GetBytes(DateTime.UtcNow.ToString("hh:mm:ss")+Environment.NewLine);
fsw.Write(writeBuffer, 0, writeBuffer.Length);
fsw.Flush();
Thread.Sleep(1000);
}
});
Thread readWorker = new Thread((ThreadStart)delegate
{
while(true)
{
FileStream fs = new FileStream("c:\\shareFile.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
byte[] readBuffer = new byte[fs.Length];
fs.Read(readBuffer,0,readBuffer.Length);
Console.WriteLine(Encoding.UTF8.GetString(readBuffer));
Thread.Sleep(1000);
}
});
writeWorker.Start();
readWorker.Start();
Console.ReadLine();
#20
加上writeWorker 跟 readWorker的Close();我手残了,忘了写。
#21
to:yf315918
不要想尽办法去解决读txt文件的问题。
传感器数据就那么几种数据传输的方法
串口,GPRS(通过Socket)
你去了解一下,他们是使用哪种方式传输的,然后自己去实现你需要的功能。
然后这些数据都有自定义的格式,放到数据库中需要自己解下
不要想尽办法去解决读txt文件的问题。
传感器数据就那么几种数据传输的方法
串口,GPRS(通过Socket)
你去了解一下,他们是使用哪种方式传输的,然后自己去实现你需要的功能。
然后这些数据都有自定义的格式,放到数据库中需要自己解下
#22
数据读的时候读到内存,写的时候写到文件,只要还是在于业务逻辑上的设计,什么时候读,什么时候写
#1
用两个文件
或者读到内存中以后,关闭streamreader
再streamwriter
或者读到内存中以后,关闭streamreader
再streamwriter
#2
这么用可不是办法,以文件做为数据交换中介,看看传感器的sdk吧,应该不用从文件读的;
#3
我现在无法访问它建立的那个文件
#4
传感器没有SDK之类的东西啊。很晕。
#5
能不能获取它的进程让其睡眠一会呢?
#6
能不能写个程序先复制这个txt然后,读取这个复制的txt
#7
看看打开文件的方式,不要用独占打开,你试下
#8
用共享方式打开!
#9
对同一个文件,不能同时读写,这是一种保护。就是锁定。
如果你想读取那个txt文件,就必须在其写操作完成后再去读。
或者看看那个写的软件是否可以进行某些设定之类的。
如果你想读取那个txt文件,就必须在其写操作完成后再去读。
或者看看那个写的软件是否可以进行某些设定之类的。
#10
同一楼,可能是你没有关闭
#11
不知道传感器在写文件的时候有没有开读权限出来
只要有读权限,你就可以用下面的代码把文件装载到内存后慢慢处理,也不会影响到传感器的写操作
[C# Code]
Stream original = File.Open(Path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
byte[] filebyte = new byte[original.Length];
original.Seek(0, SeekOrigin.Begin);
original.Read(filebyte, 0, filebyte.Length);
original.Close();
original.Dispose();
using (MemoryStream dbf = new MemoryStream(filebyte))
{
}
[/C# Code]
只要有读权限,你就可以用下面的代码把文件装载到内存后慢慢处理,也不会影响到传感器的写操作
[C# Code]
Stream original = File.Open(Path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
byte[] filebyte = new byte[original.Length];
original.Seek(0, SeekOrigin.Begin);
original.Read(filebyte, 0, filebyte.Length);
original.Close();
original.Dispose();
using (MemoryStream dbf = new MemoryStream(filebyte))
{
}
[/C# Code]
#12
两个线程肯定不能同时使用独占资源的,找一个中间载体吧
#13
11楼的想法不错
#14
建议用数据库,
#15
高速去读写txt文件是不现实的
#16
好像很矛盾啊,他都没写完,你读的是啥啊? 他一边写,你一边读? 你能保证你读到的是完整的数据吗?
他里面一直在变化的啊
还有就是最关键的:
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
他里面一直在变化的啊
还有就是最关键的:
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
兄弟我没分了,咋还得有分才能发帖子呢? 能给我点不?
#17
遇到类似问题,求解啊
#18
用数据库就完全可以了
数据库是可以支持你的这个要求的
简单问题不要用复杂方式实现
你是客户
让他们提供数据库的形式
要是放放数据库一个查询就实现了
数据库是可以支持你的这个要求的
简单问题不要用复杂方式实现
你是客户
让他们提供数据库的形式
要是放放数据库一个查询就实现了
#19
其实按说,文件写的时候应该是可读的。FileShare你试试,不过这个比较耗内存的,想对于普通的Stream。
例子:(没编译,复制到自己那试试)
FileStream fsw = new FileStream("C:\\shareFile.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
Thread writeWorker = new Thread((ThreadStart)delegate
{
while (true)
{
fsw.Seek(0,SeekOrigin.Begin);
byte[] writeBuffer = Encoding.UTF8.GetBytes(DateTime.UtcNow.ToString("hh:mm:ss")+Environment.NewLine);
fsw.Write(writeBuffer, 0, writeBuffer.Length);
fsw.Flush();
Thread.Sleep(1000);
}
});
Thread readWorker = new Thread((ThreadStart)delegate
{
while(true)
{
FileStream fs = new FileStream("c:\\shareFile.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
byte[] readBuffer = new byte[fs.Length];
fs.Read(readBuffer,0,readBuffer.Length);
Console.WriteLine(Encoding.UTF8.GetString(readBuffer));
Thread.Sleep(1000);
}
});
writeWorker.Start();
readWorker.Start();
Console.ReadLine();
#20
加上writeWorker 跟 readWorker的Close();我手残了,忘了写。
#21
to:yf315918
不要想尽办法去解决读txt文件的问题。
传感器数据就那么几种数据传输的方法
串口,GPRS(通过Socket)
你去了解一下,他们是使用哪种方式传输的,然后自己去实现你需要的功能。
然后这些数据都有自定义的格式,放到数据库中需要自己解下
不要想尽办法去解决读txt文件的问题。
传感器数据就那么几种数据传输的方法
串口,GPRS(通过Socket)
你去了解一下,他们是使用哪种方式传输的,然后自己去实现你需要的功能。
然后这些数据都有自定义的格式,放到数据库中需要自己解下
#22
数据读的时候读到内存,写的时候写到文件,只要还是在于业务逻辑上的设计,什么时候读,什么时候写