Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Programming languages 为什么读取文本文件需要字节级函数?_Programming Languages - Fatal编程技术网

Programming languages 为什么读取文本文件需要字节级函数?

Programming languages 为什么读取文本文件需要字节级函数?,programming-languages,Programming Languages,为什么读取文本文件需要字节级函数。我的意思是,毕竟它是一个包含字符串数组的文件。那么为什么不能直接存储在字符串中呢。为什么在任何语言(java,C++,C++或AS3)中都需要用字节级函数来读取它们?p> 如果我能做这样的事情,事情可能会更容易: var a_str:String = new String(); var myFile:File ; a_str = String( myFile.read("xyz.txt") ) ; trace ( a_str ) ; // <<

为什么读取文本文件需要字节级函数。我的意思是,毕竟它是一个包含字符串数组的文件。那么为什么不能直接存储在字符串中呢。为什么在任何语言(java,C++,C++或AS3)中都需要用字节级函数来读取它们?p> 如果我能做这样的事情,事情可能会更容易:

var a_str:String = new String();

var myFile:File  ;

a_str = String( myFile.read("xyz.txt") ) ;

trace ( a_str ) ; // << content of the file xyz.txt 
var a_str:String=newstring();
var-myFile:File;
a_str=String(myFile.read(“xyz.txt”);

跟踪(a_str);// 因为并不是所有的文本都被同等地呈现。一些较旧的字符集以单字节字符表示,而其他字符集则是多字节字符。因此,每个文件的编写器必须能够处理字节,而不仅仅是字符。

如何使用字符存储文件结尾?对于您能想到的任何长度合理的字符序列,都有可能出现在文本中,并被视为文件结尾,过早地结束文件。

简短答案是什么?内存通常是字节可寻址的,因此读取文件时也会遇到同样的情况。在大多数C风格编程语言中,字符串通常只是字节的集合,通常以空字符“
NUL”(0x00)”结尾。

有很多语言可以将整个文件读入字符串。蟒蛇可以;我很肯定Perl可以。该功能建立在较低级别的功能之上,该功能一次读取一个字节的文件(或者,更确切地说,作为一个字节序列,不管是否提供了更大的块)


如果你不喜欢你正在使用的工具,那就买一些更好的。

我认为,如果创建了一个标准,即“诸如此类”特殊字符集将表示文件结尾、返回等,那么这是可以做到的。无论使用什么文本字符,都将始终存在冲突问题。这就是为什么它没有使用文本字符来定义。正式的“eof”标记的概念有点奇怪。实际上,任何编码方式下的文件结尾都可以是文本EOF。相应的读取器必须识别是否在读取MBCS字符的过程中传递了EOF。- 1:NUL终止的(不是NULL,这是一个指针)“字符串”只在C.使用,甚至早期Pascal单独存储长度,因此允许NUL字符(虽然长度限制),今天的许多主要语言都有带有长度字段的unicode字符串。文件确实是字节,但是编程语言提供文本的抽象而不考虑字符编码是相对容易的(尽管你不应该半途而废),只要它仍然是字符串(而不是进入网络或磁盘)。@delnan我编辑了我的答案以反映你的评论。我真的只想到C,因为这是许多现代编程语言和操作系统的基础。你认为“C风格的编程语言”是什么?像C++、java和C语言这样的典型的候选都有非NUL终止的字符串类型,其中三个使用Unicode(虽然只是UTF—16)来处理字符串。如何学习关于现代处理器体系结构、磁盘、文件系统等等的一些知识,你会发现几乎所有的东西都是由字节组成的,或者是字节块。