java - বাইট[] জাভা ফাইল




arrays file (8)

জাভা দিয়ে:

আমার একটি byte[] যে একটি ফাইল প্রতিনিধিত্ব করে।

আমি কিভাবে একটি ফাইল এ লিখতে পারি (যেমন C:\myfile.pdf )

আমি জানি এটা ইনপুট স্ট্রিয়ামের সাথে সম্পন্ন হয়েছে, কিন্তু আমি এটি কাজ করতে পারছি না।


আমি জানি এটা ইনপুট স্ট্রিমের সাথে সম্পন্ন

আসলে, আপনি একটি ফাইল আউটপুট writing চাই ...


////////////////////////// 1] ফাইলটি বাইাইট [] ///////////////// //

Path path = Paths.get(p);
                    byte[] data = null;                         
                    try {
                        data = Files.readAllBytes(path);
                    } catch (IOException ex) {
                        Logger.getLogger(Agent1.class.getName()).log(Level.SEVERE, null, ex);
                    }

/////////////////////// 2] বাইট [] ফাইল //////////////////// ///////

 File f = new File(fileName);
 byte[] fileContent = msg.getByteSequenceContent();
Path path = Paths.get(f.getAbsolutePath());
                            try {
                                Files.write(path, fileContent);
                            } catch (IOException ex) {
                                Logger.getLogger(Agent2.class.getName()).log(Level.SEVERE, null, ex);
                            }

একটি OutputStream বা আরো বিশেষভাবে FileOutputStream চেষ্টা করুন


এছাড়াও জাভা 7 থেকে, java.nio.file.Files দিয়ে একটি লাইন:

Files.write(new File(filePath).toPath(), data);

যেখানে তথ্য আপনার বাইট [] এবং ফাইলপথ একটি স্ট্রিং। আপনি StandardOpenOptions ক্লাসের সাথে একাধিক ফাইল খোলা বিকল্প যোগ করতে পারেন। ছোঁয়া বা চেষ্টা / ধরা সঙ্গে ঘিরে যোগ করুন।


কোন লাইব্রেরি ছাড়া:

try (FileOutputStream stream = new FileOutputStream(path)) {
    stream.write(bytes);
}

গুগল গুয়াওয়ের সাথে :

Files.write(bytes, new File(path));

Apache Commons এর সাথে :

FileUtils.writeByteArrayToFile(new File(path), bytes);

এই সমস্ত কৌশলগুলি আপনাকে কোনও সময়ে আইওএক্সেপশন ধরতে হবে।


বেসিক উদাহরণ:

String fileName = "file.test";

BufferedOutputStream bs = null;

try {

    FileOutputStream fs = new FileOutputStream(new File(fileName));
    bs = new BufferedOutputStream(fs);
    bs.write(byte_array);
    bs.close();
    bs = null;

} catch (Exception e) {
    e.printStackTrace()
}

if (bs != null) try { bs.close(); } catch (Exception e) {}

java.nio.file ব্যবহার করে আরেকটি সমাধান:

byte[] bytes = ...;
Path path = Paths.get("C:\\myfile.pdf");
Files.write(path, bytes);

7 জাভা থেকে আপনি রিসোর্স লিক এড়াতে এবং আপনার কোডটি পড়তে সহজতর করার জন্য try-with-resources বিবৃতিটি ব্যবহার করতে পারেন। এখানে যে আরো।

আপনার byteArray লিখতে একটি ফাইল যা আপনি করতে হবে:

try (FileOutputStream fos = new FileOutputStream("fullPathToFile")) {
    fos.write(byteArray);
} catch (IOException ioe) {
    ioe.printStackTrace();
}







inputstream