我以下列方式创建了二进制文件(以确保二进制文件中包含所有可能的字节值):
using (var fs = File.Create(fileName))
{
for (byte b = 0; b < Byte.MaxValue; b++)
{
fs.WriteByte(b);
}
}
我这样阅读它(用来试验它的效果):
using (var fs = File.Open(fileName, FileMode.Open))
{
long oldPos = -1;
long pos = 0;
while (oldPos != pos)
{
oldPos = pos;
Console.WriteLine(Convert.ToString(fs.ReadByte(), 2).PadLeft(8, 0 ));
pos = fs.Position;
}
}
使用 < code> FileSystemObject 时, 复制文件( 读取它, 然后把它写回去) 的工作效果很好 :
var fso = new ActiveXObject("Scripting.FileSystemObject");
var from = fso.OpenTextFile(fileToRead, 1, 0); // read, ASCII (-1 for unicode)
var to = fso.CreateTextFile(fileToWriteTo, true, false);
while (!from.AtEndOfStream) {
to.Write(from.Read(1));
}
from.Close();
to.Close();
当我读到输出的二进制文件时, 我得到1000,000,000,000,000,1000,000...
但是,试图把它读成 Javascript 似乎造成未能读取:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var from = fso.OpenTextFile(fileToRead, 1, 0);
var test = [];
while (!from.AtEndOfStream) {
test.push(0xff & from.Read(1)); // make it a byte.
}
from.Close();
其结果就是测试在阵列内有一组零秒, 以及其他一些非零项, 但大多只有0秒。
有人能解释一下为什么它为一方工作,而不是另一方工作吗?我需要做些什么才能把数值写进 Javascript?
http://www.javascripter.net/faq/reading2.htm" rel="nofollow"。 在阅读客户机上的文件 上,