问题标签 [file.readalllines]

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 投票
1 回答
159 浏览

c# - C# 文本文件到字符串数组以及如何删除特定字符串?

我需要阅读一个文本文件 (10mb) 并转换为 .csv。请参见下面的代码部分:

文本文件的某些部分具有模式。所以,使用如下:

有些部分没有模式可以直接使用替换。问题是如何删除这部分的字符、数字和空格。请看下面?

得到以下结果:

obs:删除的项目需要用“,”替换。

0 投票
1 回答
144 浏览

java - FileWriting 后 Files.readAllLine() 不起作用

希望你做得很好,这是我的第一个问题
我有一个麻烦:
我的目标是从代码片段(字段,属性,构造函数)创建java文件我试图通过在读取和写入文件之间进行更改来做到这一点。
读取文件以获取旧值,删除关闭“}”
写入文件:新代码段,加上关闭“}”
我尝试的问题是 Files.readAllLine() 或 FileWriter() 不起作用。你可以在下面找到我的源代码。

另一个问题:还有其他简单的方法可以达到我的目标吗?

0 投票
0 回答
50 浏览

c# - 从 C#/.NET 正确编辑文本或源文件

从代码编辑文本或源文件的典型方法是使用 File.ReadAllLines 或 File.ReadAllText 读取文件,进行更改,然后使用 WriteAllLines 或 WriteAllText 将其写出。

但是,如果您要在 Visual Studio 或 Notepad++ 中打开文本文件(比如一些源代码文件),向下滚动几行,进行更改并保存,会处理更多内容。

似乎至少在 Windows 上处理的是一组复杂的规则和启发式方法,至少考虑到:

  1. 文本文件的推断编码。
  2. 行尾
  3. 最后一行是否为“不完整行”(如 diffutils/manual 中所述,即没有行尾字符的行)

我将部分讨论这些只是为了说明复杂性。我的问题是,是否有一套完整的启发式方法、可以使用的已经建立的算法或封装它的现有组件。

推断编码

最常见的源/文本文件:

  1. 带有 BOM 的 UTF-16
  2. 带有 BOM 的 UTF-8
  3. 无 BOM 的 UTF-8

当没有 BOM 时,使用一些启发式方法推断编码。它可能是 ASCII 或 Windows1252 (Encoding.GetEncoding(1252)),或 BOMless UTF-8 这取决于其余数据的样子。如果有一些已知的上 ascii 或可能看起来 UTF-8 的东西。

保存时,需要保持相同的编码。

行尾

您必须保持相同的行尾。因此,如果文件使用 CR/LF,则将其保留在 CR/LF。但是当它只是LF时,请保留它。但它可能会变得更复杂,因为给定的文本文件可能两者都有,并且还需要维护它。例如,一个 CR/LF 的源文件可能在其中有一个只有 LF 行结束的部分。当有人将文本从另一个工具粘贴到文字多行字符串(例如 C# 的 @"" 字符串时,就会发生这种情况。Visual Studio 可以正确处理这个问题。

不完整的行

如果最后一行不完整,则也必须保留。这意味着,如果最后一行不以行尾字符结尾

可能的方法

我认为从一开始就解决所有这些问题的一种方法是将文件视为二进制而不是文本。这意味着无法使用 .NET 中的正常文本文件处理。将需要一组新的 API 来处理编辑此类文件。

我可以对一个组件进行映像,该组件需要您将文件作为内存流打开并将其传递给组件。然后组件可以读取流并向客户端提供面向行的视图,以便客户端代码可以遍历行进行处理。通过迭代的每个元素都将是一个看起来像这样的类型的对象:

以 Windows 上的普通文本文件为例:

  • originalLineNumber 将为 1
  • 行将是一个包含文件第一行的一维数组,没有行尾
  • lineEndings[0] 将是“\x0D\x0A”

lines字段可以修改。可以替换为空数组来删除行,也可以替换为多元素数组来插入行(替换现有行)

lineEndings数组处理类似。

在许多情况下,不会删除或插入新行,在这种情况下,应用程序代码根本不需要处理行尾。它们只是对 lines[] 数组进行操作,而忽略 lineEndings[] 数组。

我愿意接受其他建议。

0 投票
1 回答
225 浏览

vb.net - VB.net从一个文本文件中读取特定的行,以开始并在开始时停止读取

我希望从文本文件中读取以某些字符开头的行,并在该行以其他字符开头时停止。因此,在我的示例中,我想从 AB 行开始阅读并在 EF 行停止,但并非所有行都包含 CD 行。总会有 AB 线和 EF 线,但其间的线数未知。

这是我将要阅读的文本文件中的行示例。您可以看到这将在 DataGridView 中创建两行,但是第一行缺少 CD 行并且应该是空白的。

这是我到目前为止的代码:

现在我目前得到的输出是:

我应该得到:

看起来它在文本文件中读取得太远了,我需要它在 EF 处停止读取。我试过 Do while 和 Do until 没有成功。有什么建议么?

0 投票
1 回答
49 浏览

c# - 写入文件跳过最后 10-20 行

首先,我逐行读取文本文件的所有行并将其存储在字符串数组中。然后我用 file.WriteLine() 把它写到一个文件中。打开的控制台窗口显示了写入文件的每一行,但是当我打开文件检查它是否运行良好时,最后 10-20 行丢失了。

有任何想法吗?

控制台输出:带下划线的是最后一行

比较书面文件与读取文件(书面文件缺少最后几行)

0 投票
1 回答
144 浏览

java - 逐行读取文本文件并将名称存储到java中的列表中

任务是读取给定文件并返回全名列表。我已经成功地分开了这些行,并且应该能够同时获得名字和姓氏,但我对如何做到这一点有点困惑。

我怎样才能得到全名readData()

我正在寻找的是这个输出["Alice Smith", "Bob Brown", "Carol White", "David Doe"]而不是重复的名称。

到目前为止,我的代码如下所示:

给定文本文件:grades.txt

0 投票
1 回答
33 浏览

c# - 使用 StartsWith() 获取读取文本文件的第二个实例

我正在从文本文件中读取以查找某行以我的条件开头的行索引。
事实证明,我想要的标准实际上有两个实例,我想得到第二个。
我将如何修改以下代码以跳过第一个实例并获取第二个?

我使用之后的结果并将其与另一个标准进行比较,以找出两个结果之间的行数。

0 投票
2 回答
316 浏览

c# - 如果 readalltext 找不到文件,请创建文件

我正在使用 c# 在 Visual Studio 中编写应用程序。我想检查 readalltext 是否正确找到文件,如果没有,则需要创建文件并在其中输入零。在伪代码中:

我怎样才能做到这一点?在此先感谢,我尝试了一些谷歌,但我可能输入了错误的关键字

0 投票
1 回答
35 浏览

c# - 使用 dll 后 C# File ReadAllLine 函数禁用(无限等待)

我的程序的操作顺序是(通过dll调用创建文件->读取创建的文件)

但它不起作用。

调用dll后ReadAllLine函数不起作用,进入无限等待状态。使用的cpu也是0。

如何运行函数并读取文件?

0 投票
1 回答
251 浏览

vb.net - 如何在 vb.net 中从下到上浏览文本文件?

我无法让下面的代码正常工作,实际上我想按下后退按钮以便逐行上移文本文件,然后将链切割成 3 部分。

在此处输入图像描述