问题标签 [io]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
476 浏览

.net - "Reliable" file work with .NET

An application needs a counter, which value to be stored in a text file. Sometimes it happens on very short intervals.

This test code rewrites a text file very often (f.e. every 100 milliseconds):

It works basically fine except in one of our "reliable tests" - stopping the computer electricity supply while the application is running.

The bad surprise was - in the file wasn't any text (should be a number) but only one or two space characters.

The missing last value it tries to write is understandable but making the file not consistent is really bad...

Trying the use of:

doesn't help.

0 投票
14 回答
897073 浏览

python - Unicode (UTF-8) 在 Python 中读取和写入文件

我在理解读取文本和将文本写入文件(Python 2.4)方面有些脑残。

("u'Capit\xe1n'", "'Capit\xc3\xa1n'")

所以我在Capit\xc3\xa1n我最喜欢的编辑器中输入文件 f2.

然后:

我在这里不明白什么?显然,我缺少一些重要的魔法(或良好的感觉)。一种输入文本文件以进行正确转换的方法是什么?

我在这里真正无法理解的是 UTF-8 表示的意义是什么,如果你不能真正让 Python 识别它,当它来自外部时。也许我应该只是 JSON 转储字符串,并改用它,因为它有一个 asciiable 表示!更重要的是,当从文件进入时,Python 会识别和解码这个 Unicode 对象的 ASCII 表示吗?如果是这样,我该如何得到它?

0 投票
2 回答
4538 浏览

file - 如何在Lua中只读取文本文件的最后一行?

我有一个程序可以生成最大为 20 米的文本字段。有时我只关心文件中的最后一行,有没有办法只读取该行而不浪费内存读取文件的其余部分?

0 投票
5 回答
9561 浏览

java - Java - 捕获 System.err.println 或捕获 PrintStream

Java新手问题:

我需要捕获由第 3 方组件写入 printStream 的文本。

PrintStream 默认为 System.err,但可以更改为另一个 PrintStream。

浏览文档,我找不到将 PrintStream 的内容定向到字符串写入器/缓冲区的简单方法。

有人可以帮忙吗?

0 投票
2 回答
205 浏览

vb.net - 测试 IO.Stream 交互

我的业务逻辑层中有一个接受流的方法,该流在 GUI 中来自用户上传文件,我感兴趣的是哪种方法可以适当地测试该方法是否适当地使用此流来做出决策。

出于测试目的,我希望将模拟流注入此方法,但我发现在使用流时缺乏抽象。

直觉告诉我需要创建一个 Stream 包装器,这将允许我 DI 包装器的接口来测试我的逻辑与流 wapper 的交互。

最好的方法是什么?

0 投票
6 回答
4288 浏览

performance - 通过多线程优化文件复制

您可以通过多线程使文件复制更快吗?

编辑:为了澄清,假设您正在实施 CopyFile(src, tgt)。在某些情况下,您可以使用多个线程使其运行得更快,这似乎是合乎逻辑的。

编辑更多想法:

自然,这取决于所讨论的硬件/存储。

例如,如果您要从一个磁盘复制到另一个磁盘,很明显您可以使用两个线程同时读/写,从而节省了两个线程中最快的(通常是读取)的性能成本。但是您实际上并不需要多个线程来并行读取/写入,只需要异步 IO。

但是,如果 async-IO 在从不同磁盘读取/写入时真的可以加快速度(最高 2 倍),为什么这不是 CopyFile 的默认实现?(或者是吗?)

0 投票
5 回答
16147 浏览

c# - C# 检查文件目标是否有效

是否有标准功能来检查指定目录是否有效?

我问的原因是我从用户那里收到一个绝对目录字符串和文件名,我想彻底检查该位置以检查它是否有效。

0 投票
1 回答
1543 浏览

python - Stackless python 网络性能随着时间的推移而下降?

所以我在玩stackless python,编写一个非常简单的网络服务器来教自己使用微线程/tasklet 编程。但是现在我的问题是,当我ab -n 100000 -c 50 http://192.168.0.192/在 apache bench 中运行类似(100k 个请求,50 个并发)之类的东西时,我得到类似 6k req/s 的东西,第二次运行它我得到 5.5k,第三次 5k,第四次,4.5k等一直到 100req/s 或其他东西。

不过,当我重新启动 python 脚本时,问题就消失了。

现在我的问题是为什么?我忘记删除小任务了吗?我已经检查了 stackless.getrunco​​unt() (由于某种原因,它似乎总是返回 1),所以它似乎不会有任何死的 tasklet 闲逛?我尝试在所有已完成的小任务上调用 .kill() ,但没有帮助。我就是想不通这个。

0 投票
1 回答
643 浏览

wcf - ASMX 或 WCF 代理客户端是否使用 IO 完成端口?

我正在对项目的关键部分进行性能测试,这时我注意到有很多额外的线程被用来执行 WaitOrTimerCallback 操作。

替代文字 http://lh4.ggpht.com/_p7-jVU64mGg/SZuWgUvTD7I/AAAAAAAAAEk/PUFrXrYvZh0/threads_thumb%5B1%5D.jpg?imgmax=800

经过仔细检查,我可以看到这些是由我的 ASMX 客户端代理类生成的,用于在远程服务器上进行操作。

我的印象是这些都在使用 IO 完成端口,就像我所有的其他异步 IO 调用一样。

是否可以让 ASMX 或 WCF 代理客户端使用 IO 完成端口?如果不是 - 真的有什么意义?

[更新] 该项目正在使用 ASMX 代理客户端。看来他们正在使用普通线程池来注册 WaitOrTimerCallback。我现在正在使用 WCF 代理客户端。这些不会产生额外的线程,所以我只能假设它们正在使用所需的 IO 完成端口。

ASMX 代理类是使用 Visual Studio 2008 创建的。我在项目文件中添加了以下行:“WebReference_EnableLegacyEventingModel>true” 因为当前的 ASMX 客户端默认没有启用异步。

0 投票
9 回答
683 浏览

testing - 如何在行为不端的 i/o 下测试应用程序的可靠性

几乎每个应用程序都执行 i/o 操作,无论是使用磁盘还是通过网络。

由于我的应用程序在开发时环境下运行良好,我想确保它们在 Internet 连接缓慢或不稳定,或者当用户试图从写得不好的 CD 中读取数据时仍然可以正常工作。

你会推荐什么工具来模拟:

  • 慢速 i/o(打开文件、关闭文件、读写、目录项枚举)
  • 偶尔的 i/o 错误
  • 偶尔的“拒绝访问”响应
  • tcp/ip 丢包
  • ETC...

编辑:

Windows:
完成上述工作的最接近的解决方案似乎是 holodeck,商业软件(>900 美元)。

Linux:
目前还没有找到开放的解决方案,但可以达到smcameron和krosenvold指定的相同效果。


装饰器模式是个好主意。它需要包装我的 i/o 类,但会产生一个测试框架。唯一剩下的未经测试的代码将在 3rd 方库中。

然而我决定不走这条路,而是让我的代码保持原样并从外部模拟 i/o 错误。


我现在知道我需要的是所谓的“故障注入”。我认为这是一个常见的生产线部件,有很多我不知道的解决方案。(顺便说一句,另一个类似的好主意是“模糊测试”,感谢 Lennart)

在我看来,这个问题仍然不值 900 美元。我将实现我自己的基于 hooks 的开源工具(针对 win32)。完成后我会更新这篇文章。三四个星期后回来...