2013-08-28 61 views
0

我一直認爲文本文件(.txt)總是隻是長字符串,並且通過包含(不可見)\ n創建了不同的行。文本文件是長字符串還是較短字符串的數組?

但是,雖然沒有明確說明,但我已經看到對文本文件的引用是字符串數組。

文本文件實際上是字符串數組的集合,每行都是一個單獨的字符串?

因此,而不是一個文本文件之中:

String = "I went to the supermarket\nI bought a loaf of bread\nI ate the bread later that day" 

是文本文件,真正做到:

String[1] = "I went to the supermarket" 
String[2] = "I bought a loaf of bread" 
String[3] = "I ate the bread later that day" 

回答

2

文本文件和文件通常在邏輯上是連續的字節序列,或者稱爲數組。操作系統提供抽象和工具,以便您可以根據需要將此數組的部分內容加載到內存中。

但是,您的應用程序可以自由加載解釋數據,但它看起來合適,使用操作系統抽象讀取數組中的隨機部分。如果您希望每次處理文本文件一行,則將一行(由換行符定界)轉換爲單個字符串是一種好方法。

0

與任何其他文件一樣,文本文件是海量存儲設備上的一系列字節。它們與編程語言的數據類型無關。

因此,程序可以選擇任何適合其計算的內部數據類型。

0

文本文件不是真正的數組或字符串;儘管它們在被程序或腳本訪問時可以這樣表示。一個文本文件只是一個字節的集合。這與二進制文件沒有什麼不同 - 唯一真正的區別是程序使用文件的方式。

關於換行符,不同的操作系統(特別是DOS/Windows與UNIX)有不同的表示換行符的方法。因此,如果您使用十六進制編輯器(即,以十六進制模式Ultraedit)檢查文本文件的內容,則將在每行末尾看到一個\n\r\n

+0

啊,所以這就是爲什麼換行符通常在字符數上算作兩個字符的原因?例如,在發短信中,因爲\正在發送,所以是n(假設Windows格式化) – PotWashMike

+0

@PotWashMike不確定發短信,但在Windows中正確。 [Wikipedia](http://en.wikipedia.org/wiki/Newline)對使用的不同格式有很好的文章。 – Joe

+0

我會給它一個通讀,謝謝。 我只是提到了發短信,因爲我們很多人都很在乎,一直強調它低於144個字符。 – PotWashMike

相關問題