标签: file-io

使用C#更改文件中行结尾的最有效方法是什么?

我有一个程序X,它接收带有Windows \r\n ({CR}{LF})行结尾的文件.当提供带有unix文件结尾的文件时,程序会中断\n ({LF})

我想创建一个适配器,它将处理输入文件并提供一个带有Windows X行结尾的输出文件到程序X.

我试过了什么

  1. 使用读取输入文件 StreamReader
  2. 将每一行写入StreamWriter临时文件
  3. 删除原始文件
  4. 将临时文件复制为原始文件
  5. 删除临时文件

代码:

public void ShouldConvertFile()
{
    using (var reader = 
           new StreamReader(new FileStream(SampleFileName, FileMode.Open)))
    {
        if (File.Exists(SampleTemporaryFileName))
            File.Delete(SampleTemporaryFileName);

        using (var writer = new StreamWriter(
                  new FileStream(SampleTemporaryFileName, FileMode.Create)))
        {
            string line;
            while ((line = reader.ReadLine()) != null)
                writer.WriteLine(line);
        }
    }

    if (File.Exists(SampleFileName))
        File.Delete(SampleFileName);

    File.Copy(SampleTemporaryFileName, SampleFileName);
    File.Delete(SampleTemporaryFileName);
}
Run Code Online (Sandbox Code Playgroud)

有没有更快/更好/更清洁的方式我可以做到这一点?

c# file-io

0
推荐指数
1
解决办法
114
查看次数

从C++中的文件中读取IP地址

我正在尝试从文本文件中读取几千个IPv4地址并将它们放入C++字符串数组中.这是我到目前为止所拥有的

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
    string fileName1,fileName2;
    fileName1="file1Large.txt";
    ifstream inData;
    inData.open(fileName1);
    string file1[10000];
    int i=0;
    while(inData)
    {
        inData>>file1[i];
        i++;
    }
    cout<<"File1: "<<endl;
    for(int z=0; z <= 10000; z++)
    {
        cout<<file1[z];
    }
    inData.close();
    system("pause");
    return 0;

}
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我得到一个未处理的异常,我不确定是什么问题.我主要使用Java而不是很多C++,所以如果我遗漏了一些明显的东西,我会道歉.

c++ file-io

0
推荐指数
1
解决办法
1506
查看次数

for循环不通过所有增量迭代

我正在为uni编写一个实验室任务的程序,代码将使得相当明显的是什么,但是当它要求第一行时,即循环中的第一个1,并且插入一个字符串并按Enter键,它会自动直接跳到循环中的最后一个增量(5)任何想法?

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.Scanner;

public class limmerickWriter {
    public static void main(String[] args)throws Exception {

        Scanner limScan = new Scanner(System.in); //scanner to read user input

        System.out.println("please enter the name of the file");

        String fileName; 

        fileName = limScan.next(); //filename for the text file 

        PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(fileName))); //declaring a new file writer

        for (int i = 1; i <= 5; i++) //loop to get 5 seperate lines from the user
        {
            System.out.println("please enter …
Run Code Online (Sandbox Code Playgroud)

java iteration file-io loops java.util.scanner

0
推荐指数
1
解决办法
102
查看次数

如何在java.io.File对象中更改文件路径位置

问题说明了一切。我有一个指向的File对象/home/user/filename1

如果我调用file.getAbsolutePath(),它将返回 /home/user/filename1

我的问题是-

  1. 我们可以将文件对象内部的路径更改为其他位置吗?
  2. 如果是,那怎么办?

谢谢

java file-io

0
推荐指数
1
解决办法
1万
查看次数

将文件中的整数转换为(x,y,z)格式(Python)

所以我真的需要帮助.我不确定的问题是创建一个名为smallest()的函数来打开一个名为datanums.txt的文件,并使每一行只显示最小的数字.

Datanums.txt文件:

6,3,5
4,4,8
3,7,2
1,8,9
9,0,6
Run Code Online (Sandbox Code Playgroud)

它应该显示什么:

3
4
2
1
0 
Run Code Online (Sandbox Code Playgroud)

问题是我需要将txt文件的行格式化为(x,y,z).有人可以帮忙吗?

我的问题是:我如何定义x,y,z ???

我的代码:

def smallest(x, y, z):

    with open('datanums.txt','r') as a:
        a.split().format(x, y, z)
        smallestNumber = sorted((x, y, z))[0]

        return smallestNumber

print smallest(x, y, z)
Run Code Online (Sandbox Code Playgroud)

python file-io

0
推荐指数
1
解决办法
107
查看次数

为什么我用WriteFile写0字节?

我正在尝试创建一个程序,在用户定义的目录中找到下一个.exe文件,并为其写一个标志(对于计算机安全类).

它目前正在写0字节,我不知道为什么.

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

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <Windows.h>
#include <fstream>

using namespace std;

typedef wchar_t wchar;

struct thePlague{
    long int origBytes;
    wchar_t flag[6];
};

void main() {
WIN32_FIND_DATA findFileData; //Windows structure that receives info about a found file or directory
HANDLE hFind = INVALID_HANDLE_VALUE; //Handle that holds whether or not a file was successfully found with FindNextFile
LARGE_INTEGER fileSize;
wchar szDir[MAX_PATH];
DWORD dwError = 0;

wchar directory[MAX_PATH];
wcout<<L"Please enter a directory: ";
wcin>>directory;

// Check that the input path …
Run Code Online (Sandbox Code Playgroud)

c++ windows file-io exe

0
推荐指数
1
解决办法
1097
查看次数

将带引号和逗号的字符串文件读入字符串数组

假设我有一个名称文件,例如:

"erica","bosley","bob","david","janice"
Run Code Online (Sandbox Code Playgroud)

也就是说,每个名称周围都有引号,每个名称用逗号分隔,中间没有空格.

我想把这些读成一个字符串数组,但似乎无法找到ignore/get/getline /无论使用什么组合.我想这是一个常见的问题,但我正试图在文件I/O上做得更好而且还不太了解.这是一个基本版本,它只是将整个文件作为一个字符串读取(显然不是我想要的):

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

fstream iFile("names.txt", ios::in);
string names[5];

int index = 0;
while(iFile)
{
    iFile >> names[index];
    index++;
}

for(int i = 0; i < 5; i++)
{
    cout << "names[" << i << "]: " << names[i] << endl;
}
Run Code Online (Sandbox Code Playgroud)

输出:

names[0]: "erica","bosley","bob","david","janice"
names[1]:
names[2]:
names[3]:
names[4]:
Run Code Online (Sandbox Code Playgroud)

另外,我理解为什么它全部被读作单个字符串,但为什么剩下的元素没有被垃圾填满?

要清楚,我希望输出看起来像:

names[0]: erica
names[1]: bosley
names[2]: bob
names[3]: david
names[4]: janice
Run Code Online (Sandbox Code Playgroud)

c++ arrays string file-io

0
推荐指数
1
解决办法
2981
查看次数

C++动态数组和文件读取不能一起工作

这样的代码:

int _tmain(int argc, _TCHAR* argv[])
{
    int *test = new int[];
    ifstream f("ofile.txt");
    for (int i=0,v; i<10; i++)
    {
        f>>v;
        test[i]=1; 
        cout<<"\nv = "<<v<<", i = "<<i<<endl;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译后导致此消息:

在此输入图像描述

我想(如果我错了,请纠正我)这里有一些关于记忆的错误,但细节对我来说不得而知.如果我删除其中一个(文件读取或数组),它的工作原理.所以听到问题的解释会很棒.

c++ memory arrays compiler-construction file-io

0
推荐指数
1
解决办法
166
查看次数

使用C或C++复制非文本文件?

如果我用C或C++编写程序,在Windows/CMD提示符中将非文本文件(.mp3,.avi等)从一个位置复制到另一个位置,我是否真的依赖Windows API来完成所有工作为了我?复制文本文件是一回事,我可以打开它并按字符或逐字符串复制字符.有人可以给我一个简短的纲要(如果你有参考链接,甚至更好.我只是问,因为我找不到任何合理的解释它.)关于非文本文件复制程序如何工作?

谢谢大家!

c c++ file-io copy

0
推荐指数
1
解决办法
376
查看次数

读取不一致的文件

C中哪些文件读取器可以处理读取不一致的文件?有时文件是"字号",有时它只是"字".像这样.

bob 456
echo
cat 
dog 1101
peacock 300
Run Code Online (Sandbox Code Playgroud)

这就是我用fscanf尝试过的.我很惊讶它的工作原理.我不认为fscanf喜欢不一致的文件.有什么我需要担心的吗?我知道如果你不小心,fscanf会有非常糟糕的副作用.

while (fscanf(pFile, "%s %d",  nam, &val) !=EOF)
{
    //my work
}
Run Code Online (Sandbox Code Playgroud)

c file-io scanf

0
推荐指数
1
解决办法
103
查看次数