#include #include #include #include #include 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(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] << " " << 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; }