Visual C++ .NET/File Directory/FileStream

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Create and save binary file with FileStream

 
#include "stdafx.h"
using namespace System;
using namespace System::IO;
void main()
{
    FileStream ^fso = gcnew FileStream("file.dat", FileMode::Create,FileAccess::Write, FileShare::None);
    array<unsigned char>^ data = gcnew array<unsigned char> { "T", "h", "i","\r", "\n" };
    for (int i = 0; i < data->Length-5; i += 5)
    {
        fso->Write(data, i, 5);
    }

    fso->Close();

}


Get binary file length

 
#include "stdafx.h"
using namespace System;
using namespace System::IO;
void main()
{
    FileStream ^fso = gcnew FileStream("file.dat", FileMode::Create,FileAccess::Write, FileShare::None);
    array<unsigned char>^ data = gcnew array<unsigned char> { "T", "h", "i","\r", "\n" };
    for (int i = 0; i < data->Length-5; i += 5)
    {
        fso->Write(data, i, 5);
    }

    fso->Close();
    FileInfo ^fi = gcnew FileInfo("file.dat");
    FileStream ^fsi = fi->OpenRead();
  int fileLength = (int)fi->Length;
    int b;
    while ((b = fsi->ReadByte()) != -1)
    {
        Console::Write((Char)b);
    }
    fsi->Position = 0;
    array<unsigned char>^ ca = gcnew array<unsigned char>(fileLength);
    fsi->Read(ca, 0, fileLength);
    for (int i = 0; i < ca->Length; i++)
    {
        Console::Write((Char)ca[i]);
    }
    fsi->Close();
    fi->Delete();
}


Read binary file to an array

 
#include "stdafx.h"
using namespace System;
using namespace System::IO;
void main()
{
    FileStream ^fso = gcnew FileStream("file.dat", FileMode::Create,FileAccess::Write, FileShare::None);
    array<unsigned char>^ data = gcnew array<unsigned char> { "T", "h", "i","\r", "\n" };
    for (int i = 0; i < data->Length-5; i += 5)
    {
        fso->Write(data, i, 5);
    }

    fso->Close();
    FileInfo ^fi = gcnew FileInfo("file.dat");
    FileStream ^fsi = fi->OpenRead();
  int fileLength = (int)fi->Length;
    int b;
    while ((b = fsi->ReadByte()) != -1)
    {
        Console::Write((Char)b);
    }
    fsi->Position = 0;
    array<unsigned char>^ ca = gcnew array<unsigned char>(fileLength);
    fsi->Read(ca, 0, fileLength);
    for (int i = 0; i < ca->Length; i++)
    {
        Console::Write((Char)ca[i]);
    }
    fsi->Close();
    fi->Delete();
}


Read byte from binary file

 
#include "stdafx.h"
using namespace System;
using namespace System::IO;
void main()
{
    FileStream ^fso = gcnew FileStream("file.dat", FileMode::Create,FileAccess::Write, FileShare::None);
    array<unsigned char>^ data = gcnew array<unsigned char> { "T", "h", "i","\r", "\n" };
    for (int i = 0; i < data->Length-5; i += 5)
    {
        fso->Write(data, i, 5);
    }

    fso->Close();
    FileInfo ^fi = gcnew FileInfo("file.dat");
    FileStream ^fsi = fi->OpenRead();
  int fileLength = (int)fi->Length;
    int b;
    while ((b = fsi->ReadByte()) != -1)
    {
        Console::Write((Char)b);
    }
    fsi->Position = 0;
    array<unsigned char>^ ca = gcnew array<unsigned char>(fileLength);
    fsi->Read(ca, 0, fileLength);
    for (int i = 0; i < ca->Length; i++)
    {
        Console::Write((Char)ca[i]);
    }
    fsi->Close();
    fi->Delete();
}


Rewind by setting the binary file reading position

 
#include "stdafx.h"
using namespace System;
using namespace System::IO;
void main()
{
    FileStream ^fso = gcnew FileStream("file.dat", FileMode::Create,FileAccess::Write, FileShare::None);
    array<unsigned char>^ data = gcnew array<unsigned char> { "T", "h", "i","\r", "\n" };
    for (int i = 0; i < data->Length-5; i += 5)
    {
        fso->Write(data, i, 5);
    }

    fso->Close();
    FileInfo ^fi = gcnew FileInfo("file.dat");
    FileStream ^fsi = fi->OpenRead();
  int fileLength = (int)fi->Length;
    int b;
    while ((b = fsi->ReadByte()) != -1)
    {
        Console::Write((Char)b);
    }
    fsi->Position = 0;
    array<unsigned char>^ ca = gcnew array<unsigned char>(fileLength);
    fsi->Read(ca, 0, fileLength);
    for (int i = 0; i < ca->Length; i++)
    {
        Console::Write((Char)ca[i]);
    }
    fsi->Close();
    fi->Delete();
}