जवाबों:
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
}
try {} finally {}
उचित संसाधन सफाई सुनिश्चित करने के लिए उपयोग करना चाहिए ।
बिना किसी पुस्तकालय के:
try (FileOutputStream stream = new FileOutputStream(path)) {
stream.write(bytes);
}
Google अमरूद के साथ :
Files.write(bytes, new File(path));
अपाचे कॉमन्स के साथ :
FileUtils.writeByteArrayToFile(new File(path), bytes);
इन सभी रणनीतियों के लिए आवश्यक है कि आप किसी बिंदु पर एक IOException भी पकड़ें।
जावा 7 के बाद से, java.nio.file.Files के साथ एक पंक्ति:
Files.write(new File(filePath).toPath(), data);
जहां डेटा आपकी बाइट [] है और फ़ाइलपैथ एक स्ट्रिंग है। आप StandardOpenOptions क्लास के साथ कई फ़ाइल ओपन विकल्प भी जोड़ सकते हैं। थ्रो जोड़ें या कोशिश / पकड़ के साथ चारों ओर।
Paths.get(filePath);
इसके बजायnew File(filePath).toPath()
से जावा 7 आगे आप उपयोग कर सकते हैं कोशिश के साथ-संसाधन संसाधन लीक से बचने और अपने कोड को पढ़ने में आसान बनाने के लिए बयान। उस पर और अधिक यहाँ ।
अपनी byteArray
फ़ाइल को लिखने के लिए आप क्या करेंगे:
try (FileOutputStream fos = new FileOutputStream("fullPathToFile")) {
fos.write(byteArray);
} catch (IOException ioe) {
ioe.printStackTrace();
}
एक OutputStream
या अधिक विशेष रूप से प्रयास करेंFileOutputStream
मुझे पता है कि यह InputStream के साथ किया गया है
दरअसल, आप एक फ़ाइल आउटपुट के लिए लिख रहे हैं ...
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);
}
////////////////////////// 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);
}
मूल उदाहरण:
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) {}
यह एक ऐसा प्रोग्राम है, जिसमें हम स्ट्रिंग बिल्डर की मदद से बाइट्स ऑफ़सेट और लेंथ की रीडिंग और प्रिंटिंग अरेंज कर रहे हैं और बाइट्स की एरे को नई फ़ाइल में ऑफ़सेट लंबाई लिखते हैं।
` यहाँ कोड दर्ज करें
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
आप कैक्टस की कोशिश कर सकते हैं :
new LengthOf(new TeeInput(array, new File("a.txt"))).value();
अधिक जानकारी: http://www.yegor256.com/2017/06/22/object-oriented-input-output-in-actact.html