68 lines
1.6 KiB
C++
68 lines
1.6 KiB
C++
#include <cstddef>
|
|
#include <cstdlib>
|
|
#include <filesystem>
|
|
#include <fstream>
|
|
#include <iostream>
|
|
|
|
void writeBinaryFile(const std::filesystem::path& inputFileName, std::filesystem::path& outputFileName) {
|
|
std::ifstream inputFile(inputFileName);
|
|
std::ofstream outputFile(outputFileName, std::ios::binary);
|
|
|
|
if (!inputFile) {
|
|
std::cerr << "Error opening input file: " << inputFileName << std::endl;
|
|
std::exit(EXIT_FAILURE);
|
|
}
|
|
|
|
if (!outputFile) {
|
|
std::cerr << "Error opening output file: " << outputFileName << std::endl;
|
|
std::exit(EXIT_FAILURE);
|
|
}
|
|
|
|
inputFile.seekg(0, std::ios::end);
|
|
size_t size = inputFile.tellg();
|
|
inputFile.seekg(0, std::ios::beg);
|
|
|
|
|
|
char buffer[size];
|
|
inputFile.read(buffer, size);
|
|
|
|
std::stringstream ss;
|
|
|
|
ss << "public final class "<< outputFileName.stem().c_str() <<" {\n"
|
|
<< " public static final byte[] data = new byte[]{";
|
|
|
|
for (size_t i = 0; i < size; ++i) {
|
|
ss << static_cast<int>(buffer[i]);
|
|
if (i < size - 1) ss << ", "; // Add comma between elements
|
|
}
|
|
|
|
ss << "};\n}";
|
|
|
|
|
|
outputFile << ss.str();
|
|
|
|
if (outputFile.fail())
|
|
{
|
|
std::cerr << "Error writing to file!" << std::endl;
|
|
std::exit(EXIT_FAILURE);
|
|
}
|
|
|
|
inputFile.close();
|
|
outputFile.close();
|
|
}
|
|
|
|
int main(int argc, char* argv[]) {
|
|
if (argc != 3) {
|
|
std::cerr << "Usage: " << argv[0] << " <input_file> <output_file>" << std::endl;
|
|
return EXIT_FAILURE;
|
|
}
|
|
|
|
std::filesystem::path inputFileName = argv[1];
|
|
std::filesystem::path outputFileName = argv[2];
|
|
|
|
writeBinaryFile(inputFileName, outputFileName);
|
|
|
|
std::cout << "file embeded to java file successfully." << std::endl;
|
|
|
|
return EXIT_SUCCESS;
|
|
} |