Skip to content

Commit 3a6c4e2

Browse files
committed
Added ReadBytesFromFile method.
Updated documentation.
1 parent 2248889 commit 3a6c4e2

File tree

11 files changed

+65
-29
lines changed

11 files changed

+65
-29
lines changed

Documentation/API/Parsers/ParseBpmFromChartSection.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ using namespace RhythmGameUtilities;
2727

2828
int main()
2929
{
30-
auto content = ReadFromFile("./tests/Mocks/song.chart");
30+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
3131

3232
auto sections = ParseSectionsFromChart(content.c_str());
3333

Documentation/API/Parsers/ParseLyricsFromChartSection.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ using namespace RhythmGameUtilities;
2727

2828
int main()
2929
{
30-
auto content = ReadFromFile("./tests/Mocks/song.chart");
30+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
3131

3232
auto sections = ParseSectionsFromChart(content.c_str());
3333

Documentation/API/Parsers/ParseMetaDataFromChartSection.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ using namespace RhythmGameUtilities;
2929

3030
int main()
3131
{
32-
auto content = ReadFromFile("./tests/Mocks/song.chart");
32+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
3333

3434
auto sections = ParseSectionsFromChart(content.c_str());
3535

Documentation/API/Parsers/ParseNotesFromChartSection.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ using namespace RhythmGameUtilities;
2727

2828
int main()
2929
{
30-
auto content = ReadFromFile("./tests/Mocks/song.chart");
30+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
3131

3232
auto sections = ParseSectionsFromChart(content.c_str());
3333

Documentation/API/Parsers/ParseSectionsFromChart.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ using namespace RhythmGameUtilities;
2525

2626
int main()
2727
{
28-
auto content = ReadFromFile("./tests/Mocks/song.chart");
28+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
2929

3030
auto sections = ParseSectionsFromChart(content.c_str());
3131

Documentation/API/Parsers/ParseTimeSignaturesFromChartSection.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ using namespace RhythmGameUtilities;
2727

2828
int main()
2929
{
30-
auto content = ReadFromFile("./tests/Mocks/song.chart");
30+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
3131

3232
auto sections = ParseSectionsFromChart(content.c_str());
3333

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ using namespace RhythmGameUtilities;
303303

304304
int main()
305305
{
306-
auto content = ReadFromFile("./tests/Mocks/song.chart");
306+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
307307

308308
auto sections = ParseSectionsFromChart(content.c_str());
309309

@@ -361,7 +361,7 @@ using namespace RhythmGameUtilities;
361361

362362
int main()
363363
{
364-
auto content = ReadFromFile("./tests/Mocks/song.chart");
364+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
365365

366366
auto sections = ParseSectionsFromChart(content.c_str());
367367

@@ -421,7 +421,7 @@ using namespace RhythmGameUtilities;
421421

422422
int main()
423423
{
424-
auto content = ReadFromFile("./tests/Mocks/song.chart");
424+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
425425

426426
auto sections = ParseSectionsFromChart(content.c_str());
427427

@@ -481,7 +481,7 @@ using namespace RhythmGameUtilities;
481481

482482
int main()
483483
{
484-
auto content = ReadFromFile("./tests/Mocks/song.chart");
484+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
485485

486486
auto sections = ParseSectionsFromChart(content.c_str());
487487

@@ -545,7 +545,7 @@ using namespace RhythmGameUtilities;
545545

546546
int main()
547547
{
548-
auto content = ReadFromFile("./tests/Mocks/song.chart");
548+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
549549

550550
auto sections = ParseSectionsFromChart(content.c_str());
551551

@@ -598,7 +598,7 @@ using namespace RhythmGameUtilities;
598598

599599
int main()
600600
{
601-
auto content = ReadFromFile("./tests/Mocks/song.chart");
601+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
602602

603603
auto sections = ParseSectionsFromChart(content.c_str());
604604

RhythmGameUtilities/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ using namespace RhythmGameUtilities;
303303

304304
int main()
305305
{
306-
auto content = ReadFromFile("./tests/Mocks/song.chart");
306+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
307307

308308
auto sections = ParseSectionsFromChart(content.c_str());
309309

@@ -361,7 +361,7 @@ using namespace RhythmGameUtilities;
361361

362362
int main()
363363
{
364-
auto content = ReadFromFile("./tests/Mocks/song.chart");
364+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
365365

366366
auto sections = ParseSectionsFromChart(content.c_str());
367367

@@ -421,7 +421,7 @@ using namespace RhythmGameUtilities;
421421

422422
int main()
423423
{
424-
auto content = ReadFromFile("./tests/Mocks/song.chart");
424+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
425425

426426
auto sections = ParseSectionsFromChart(content.c_str());
427427

@@ -481,7 +481,7 @@ using namespace RhythmGameUtilities;
481481

482482
int main()
483483
{
484-
auto content = ReadFromFile("./tests/Mocks/song.chart");
484+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
485485

486486
auto sections = ParseSectionsFromChart(content.c_str());
487487

@@ -545,7 +545,7 @@ using namespace RhythmGameUtilities;
545545

546546
int main()
547547
{
548-
auto content = ReadFromFile("./tests/Mocks/song.chart");
548+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
549549

550550
auto sections = ParseSectionsFromChart(content.c_str());
551551

@@ -598,7 +598,7 @@ using namespace RhythmGameUtilities;
598598

599599
int main()
600600
{
601-
auto content = ReadFromFile("./tests/Mocks/song.chart");
601+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
602602

603603
auto sections = ParseSectionsFromChart(content.c_str());
604604

UnityPackage/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ using namespace RhythmGameUtilities;
303303

304304
int main()
305305
{
306-
auto content = ReadFromFile("./tests/Mocks/song.chart");
306+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
307307

308308
auto sections = ParseSectionsFromChart(content.c_str());
309309

@@ -361,7 +361,7 @@ using namespace RhythmGameUtilities;
361361

362362
int main()
363363
{
364-
auto content = ReadFromFile("./tests/Mocks/song.chart");
364+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
365365

366366
auto sections = ParseSectionsFromChart(content.c_str());
367367

@@ -421,7 +421,7 @@ using namespace RhythmGameUtilities;
421421

422422
int main()
423423
{
424-
auto content = ReadFromFile("./tests/Mocks/song.chart");
424+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
425425

426426
auto sections = ParseSectionsFromChart(content.c_str());
427427

@@ -481,7 +481,7 @@ using namespace RhythmGameUtilities;
481481

482482
int main()
483483
{
484-
auto content = ReadFromFile("./tests/Mocks/song.chart");
484+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
485485

486486
auto sections = ParseSectionsFromChart(content.c_str());
487487

@@ -545,7 +545,7 @@ using namespace RhythmGameUtilities;
545545

546546
int main()
547547
{
548-
auto content = ReadFromFile("./tests/Mocks/song.chart");
548+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
549549

550550
auto sections = ParseSectionsFromChart(content.c_str());
551551

@@ -598,7 +598,7 @@ using namespace RhythmGameUtilities;
598598

599599
int main()
600600
{
601-
auto content = ReadFromFile("./tests/Mocks/song.chart");
601+
auto content = ReadStringFromFile("./tests/Mocks/song.chart");
602602

603603
auto sections = ParseSectionsFromChart(content.c_str());
604604

include/RhythmGameUtilities/File.hpp

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,46 @@
33
#include <fstream>
44
#include <iostream>
55
#include <string>
6+
#include <vector>
67

78
namespace RhythmGameUtilities
89
{
910

1011
/**
11-
* Reads the entire contents of a file.
12+
* Reads the entire contents of a file as a byte array.
1213
*
1314
* @param path The path of the file to read.
1415
* @public
1516
*/
1617

17-
std::string ReadFromFile(const char *path)
18+
std::vector<uint8_t> ReadBytesFromFile(const char *path)
19+
{
20+
std::ifstream file(path, std::ios::binary | std::ios::ate);
21+
22+
if (!file.is_open())
23+
{
24+
std::cerr << "Failed to open " << path << "." << std::endl;
25+
}
26+
27+
auto fileSize = file.tellg();
28+
29+
std::vector<uint8_t> buffer(static_cast<size_t>(fileSize));
30+
31+
file.seekg(0, std::ios::beg);
32+
33+
file.read(reinterpret_cast<char *>(buffer.data()), fileSize);
34+
35+
return buffer;
36+
}
37+
38+
/**
39+
* Reads the entire contents of a file as a string.
40+
*
41+
* @param path The path of the file to read.
42+
* @public
43+
*/
44+
45+
std::string ReadStringFromFile(const char *path)
1846
{
1947
std::ifstream file(path);
2048

0 commit comments

Comments
 (0)