标签: file.readalllines

62
推荐指数
3
解决办法
3万
查看次数

File.ReadLines()和File.ReadAllLines()之间有什么区别?

我有关于File.ReadLines()和File.ReadAllLines()的查询.它们之间有什么区别.我有文本文件,其中包含行数据.File.ReadAllLines()返回数组和使用File.ReadLines().ToArray();也将得到相同的结果.那么这些方法有任何性能差异吗?

string[] lines = File.ReadLines("C:\\mytxt.txt").ToArray();
Run Code Online (Sandbox Code Playgroud)

要么

string[] lines = File.ReadAllLines("C:\\mytxt.txt");
Run Code Online (Sandbox Code Playgroud)

c# readline file.readalllines

44
推荐指数
2
解决办法
5万
查看次数

FileStream 被要求打开一个不是文件的设备

我正在监视 FTP 文件夹中的订单,然后在删除文件之前将其读入字符串数组以进行进一步处理。

总的来说是有效的,但偶尔我会遇到以下异常:

FileStream 被要求打开一个不是文件的设备。要支持“com1:”或“lpt1:”等设备,请调用 CreateFile,然后使用将操作系统句柄作为 IntPtr 的 FileStream 构造函数。 Stacktrace - 在 Microsoft.Win32.Win32Native.SafeCreateFile(String lpFileName, Int32 dwDesiredAccess, FileShare dwShareMode, SECURITY_ATTRIBUTES securityAttrs, FileMode dwCreationDisposition, Int32 dwFlagsAndAttributes, IntPtr hTemplateFile) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare buffer share, Int3232 , String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
在 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.StreamReader..ctor( System.IO.StreamReader..ctor(String path, Encoding encoding) at …

c# filestream file.readalllines

8
推荐指数
0
解决办法
4374
查看次数

使用LINQ时,File.ReadAllLines是否延迟加载?

我想知道以下代码是否是惰性求值的,或者是否会以我处理可能的异常的方式崩溃ReadAllLines().我确定该Where条款是懒惰的评估,但我不确定我什么时候使用它ReadAllLines().可能的解释如何以及为什么会受到赞赏.

File.ReadAllLines异常

var fileLines = File.ReadAllLines(filePath).Where(line =>
{
    line = line.Trim();
    return line.Contains("hello");
});

string search;
try
{
    search = fileLines.Single();
}
catch (Exception exception)
{
    ...log the exception...
}
Run Code Online (Sandbox Code Playgroud)

提前致谢

c# linq lazy-loading file.readalllines

4
推荐指数
1
解决办法
1760
查看次数

需要帮助理解Microsoft对File.ReadLines和File.ReadAllLines的解释

根据Microsoft对The ReadLinesReadAllLinesmethods 的解释,当您使用时ReadLines,您可以在返回整个集合之前开始枚举字符串集合.使用时ReadAllLines,必须等待返回整个字符串数组,然后才能访问该数组.因此,当您使用非常大的文件时,ReadLines可以更高效.

当他们说:

1 - "当你使用ReadLines时,你可以在返回整个集合之前开始枚举字符串集合. "如果编写下面的代码行,那么这不意味着ReadLines方法执行结束并且整个集合是返回并存储在变量filedata中?

IEnumerable<String> filedata = File.ReadLines(fileWithPath)
Run Code Online (Sandbox Code Playgroud)

2 - "当你使用时ReadAllLines,你必须等待返回整个字符串数组才能访问数组 ".这是否意味着,在下面的代码片段中,如果读取一个大文件,那么如果在读取文件后立即使用数组变量hugeFileData将不会拥有所有数据?

string[] hugeFileData = File.ReadAllLines(path)
string i = hugeFileData[hugeFileData.length-1];
Run Code Online (Sandbox Code Playgroud)

3 - "当您使用非常大的文件时,ReadLines可以更高效 ".如果是这样,那么在读取大文件时,以下代码是否有效?我相信第二行和第三行下面的代码会读取文件两次,如果我错了,请纠正我.

string fileWithPath = "some large sized file path";
string lastLine = File.ReadLines(fileWithPath).Last();
int totalLines = File.ReadLines(fileWithPath).Count();
Run Code Online (Sandbox Code Playgroud)

在上面的代码片段中两次在同一文件上调用ReadLines的原因是当我尝试下面的代码时,我TextReader在下面的代码片段的第3行上得到了一个异常"无法从关闭状态读取".

IEnumerable<String> filedata = File.ReadLines(fileWithPath);
string lastLine = filedata.Last();
int totalLines = filedata.Count();
Run Code Online (Sandbox Code Playgroud)

c# readlines file.readalllines

3
推荐指数
1
解决办法
436
查看次数

为什么ReadAllLines在WPF中工作,但在ConsoleApp中不工作

我正在做一些基准测试,以不同的方式来读取CSV文件,并发现一个"奇怪"的问题.问题是当我在控制台应用程序中使用此方法时:

        var lines = File.ReadAllLines(fileName); // OutOfMemoryException
        foreach (var line in lines)
        {
            //doing stuff
        }
Run Code Online (Sandbox Code Playgroud)

我得到一个OutOfMemoryException,但是当我在WPF项目中使用相同的方法时,它工作正常.我正在测试这个文件是730MB,我知道不要在更大的CSV文件上使用ReadAllLines,但为什么这个方法在WPF应用程序中有效但在控制台应用程序中却无效?

c# csv file.readalllines

2
推荐指数
1
解决办法
117
查看次数

使用嵌入式文本文件中的File.ReadAllLines

我一直在应用我迄今为止在Bob Tabors绝对初学者系列中学到的东西,我为我的女儿写了一个小的控制台文字游戏,要求我生成一个随机的5个字母的单词.

我以前File.ReadAllLines(path)用来从我的系统上的文本文件(wordlist.txt)生成一个字符串数组,并Random.next生成我将从数组中提取的索引.

我从这里的一些帖子中了解到如何将文件作为资源嵌入,但现在我无法找到指向它的语法(路径).或者我是否必须以不同的方式访问它,因为它是嵌入式的?

提前致谢

c# embedded-resource file.readalllines

2
推荐指数
1
解决办法
2853
查看次数