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




arrays file io inputstream (11)

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);
}

জাভা দিয়ে:

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

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

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



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


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

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

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


এটি এমন একটি প্রোগ্রাম যেখানে আমরা স্ট্রিং বিল্ডার ব্যবহার করে বাইট অফসেট এবং দৈর্ঘ্যের অ্যারে পড় এবং মুদ্রণ করছি এবং নতুন ফাইলের বাইট অফসেট দৈর্ঘ্যের অ্যারে লেখার।

এখানে কোড লিখুন

import java.io.File;   
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;        

//*This is a program where we are reading and printing array of bytes offset and length using StringBuilder and Writing the array of bytes offset length to the new file*//     

public class ReadandWriteAByte {
    public void readandWriteBytesToFile(){
        File file = new File("count.char"); //(abcdefghijk)
        File bfile = new File("bytefile.txt");//(New File)
        byte[] b;
        FileInputStream fis = null;              
        FileOutputStream fos = null;          

        try{               
            fis = new FileInputStream (file);           
            fos = new FileOutputStream (bfile);             
            b = new byte [1024];              
            int i;              
            StringBuilder sb = new StringBuilder();

            while ((i = fis.read(b))!=-1){                  
                sb.append(new String(b,5,5));               
                fos.write(b, 2, 5);               
            }               

            System.out.println(sb.toString());               
        }catch (IOException e) {                    
            e.printStackTrace();                
        }finally {               
            try {              
                if(fis != null);           
                    fis.close();    //This helps to close the stream          
            }catch (IOException e){           
                e.printStackTrace();              
            }            
        }               
    }               

    public static void main (String args[]){              
        ReadandWriteAByte rb = new ReadandWriteAByte();              
        rb.readandWriteBytesToFile();              
    }                 
}                

O / P কনসোল ইন: fghij

নতুন ফাইলের মধ্যে O / P: cdefg


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

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

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

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

Apache Commons এর সাথে :

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

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


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

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


Apache Commons IO ব্যবহার করুন

FileUtils.writeByteArrayToFile(new File("pathname"), myByteArray)

অথবা, যদি আপনি নিজের জন্য কাজ করার জন্য জোর দেন ...

try (FileOutputStream fos = new FileOutputStream("pathname")) {
   fos.write(myByteArray);
   //fos.close(); There is no more need for this line since you had created the instance of "fos" inside the try. And this will automatically close the OutputStream
}

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

byte[] bytes = ...;
Path path = Paths.get("C:\\myfile.pdf");
Files.write(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) {}

আসলে এটি করার একটি সহজ উপায়, বস্তুর একটি অ্যারে তৈরি করা এবং নিম্নলিখিত উদাহরণের মতো আপনার পছন্দসই প্রকারে ঢোকানো:

T[] array = (T[])new Object[SIZE];

যেখানে SIZE একটি ধ্রুবক এবং T একটি টাইপ শনাক্তকারী







java arrays file io inputstream