使用Java將byte[]陣列轉換為檔案


Java檔案類中,檔案類表示不同平臺上不同格式的目錄路徑名。Java中的檔案類包含不同路徑名的處理方法,負責使用新的目錄 刪除和重新命名檔案。它是一個字串形式的抽象類,可以是絕對路徑或相對路徑。

將Byte[ ]陣列轉換為檔案的演算法

在這個可能的演算法中,我們將向您展示如何對byte()陣列節點進行轉換過程,使其成為一個檔案。透過使用此演算法,我們將構建一些Java語法來更廣泛地瞭解問題陳述。

  • 步驟1 - 開始程序。

  • 步驟2 - 宣告並匯入Java包。

  • 步驟3 - 宣告一個公共類。

  • 步驟4 - 宣告一個將位元組陣列轉換為Writer類的方法。

  • 步驟5 - 宣告一個靜態位元組型別。

  • 步驟6 - 宣告一個檔案寫入器類。

  • 步驟7 - 宣告一個呼叫append()方法。

  • 步驟8 - 構造驅動程式碼。

  • 步驟9 - 宣告各種值。

  • 步驟10 - 呼叫主方法。

  • 步驟11 - 獲取返回值作為檔案。

  • 步驟12 - 終止程序。

將Byte[ ]陣列轉換為檔案的語法

在這個可能的演算法中,我們將向您展示如何對byte()陣列節點進行轉換過程,使其成為一個檔案。透過使用此演算法,我們將構建一些Java語法來更廣泛地瞭解問題陳述。

  • 步驟1 - 開始程序。

  • 步驟2 - 宣告並匯入Java包。

  • 步驟3 - 宣告一個公共類。

  • 步驟4 - 宣告一個將位元組陣列轉換為Writer類的方法。

  • 步驟5 - 宣告一個靜態位元組型別。

  • 步驟6 - 宣告一個檔案寫入器類。

  • 步驟7 - 宣告一個呼叫append()方法。

  • 步驟8 - 構造驅動程式碼。

  • 步驟9 - 宣告各種值。

  • 步驟10 - 呼叫主方法。

  • 步驟11 - 獲取返回值作為檔案。

  • 步驟12 - 終止程序。

將Byte[ ]陣列轉換為檔案的語法

FileUtils.writeByteArrayToFile(new File("pathname"), myByteArray)
try (FileOutputStream fos = new FileOutputStream("pathname")) {
   fos.write(myByteArray);
}
try (FileOutputStream fos = new FileOutputStream("fullPathToFile")) {
   fos.write(byteArray);
} catch (IOException ioe) {
   ioe.printStackTrace();
}
String fileName = "file.test";
BufferedOutputStream bs = null;
try {
   Convert byte[] array to File using Java
   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) {}
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);
}
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);
}
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()節點執行轉換過程以使其成為檔案。透過這些語法,我們將構建一些Java程式碼,以有效的方式解決問題陳述。

遵循的方法

  • 方法1 - 使用java.io.FileOutputStream的Java程式將位元組陣列轉換為檔案,以定義與程序相關的異常以及writeByte(byteInt, byteChar, byteDouble)和writer的使用以及呼叫append()方法

  • 方法2 - 使用java.io.ByteArrayInputStream和InputStream方法的子類的Java程式將位元組陣列轉換為檔案

方法1

使用Java.io.FileOutputStream定義與程序相關的異常並實現WriteByte(ByteInt, ByteChar, byteDouble)和Writer以及呼叫Append()方法

使用Java.io.FileOutputStream和異常方法

在這種可能的方法中,我們將對byte[]陣列列表應用java.io.FileOutputStream方法。透過遵循此方法,我們將對該byte陣列列表執行轉換,透過定義異常將其轉換為檔案。

File outputFile = tempFolder.newFile("FILE NAME");
try (FileOutputStream outputStream = new FileOutputStream(outputFile)) {
   outputStream.write(dataForWriting);
}
public static void main(String[] args) throws IOException {
byte[] bytes = "frontbackend.com".getBytes(StandardCharsets.UTF_8);
try (FileOutputStream fos = new FileOutputStream("FILE PATH")) {
fos.write(bytes);

示例

//Java Program to convert Byte Array to File by using java.io.FileOutputStream to define exceptions related to the process
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class ARBRDD{
   static String FILEPATH = "";
   static File file = new File(FILEPATH);
   static void writeByte(byte[] bytes){
      try{
         OutputStream os = new FileOutputStream(file);
         os.write(bytes);
         System.out.println("Successfully" + "the byte has been inserted");
         os.close();
      }
      catch (Exception e){
         System.out.println("Exception Is Here: " + e);
      }
   }
   public static void main(String args[]){
      String string = "TutorialsPoint" + " -Is A Computer Science" + "Data Source Portal For Coding Minds";
      byte[] bytes = string.getBytes();
      writeByte(bytes);
   }
}

輸出

Exception Is Here: java.io.FileNotFoundException: (No such file or directory)

使用具有WriteByte(ByteInt, ByteChar, ByteDouble)方法的多種方法

在這種可能的方法中,我們將對byte[]陣列列表應用使用writeByte(byteInt, byteChar, byteDouble)方法的多方法。透過遵循此方法,我們將對該byte陣列列表執行轉換,透過定義異常將其轉換為檔案。

示例

// Java Program to Convert Integer, Character and Double types into Bytes and Writing it in a File by using multipale methods with writeByte(byteInt, byteChar, byteDouble)
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class ARBRDD{
   static String FILEPATH = "";
   static File file = new File(FILEPATH);
   static void writeByte(byte[] byteInt, byte[] byteChar,
   byte[] byteDouble){
      try {
         OutputStream os = new FileOutputStream(file);
         os.write(byteInt);
         os.write(byteChar);
         os.write(byteDouble);
         System.out.println(
         "Successfully the byte has been inserted");
         os.close();
      }
      catch (Exception e) {
         System.out.println("Exception is here. Note it down: " + e);
      }
   }
   public static void main(String args[]){
      int num = 56;
      char ch = 's';
      double dec = 78.9;
      byte[] byteInt = Integer.toString(num).getBytes();
      byte[] byteChar = Character.toString(ch).getBytes();
      byte[] byteDouble = Double.toString(dec).getBytes();
      writeByte(byteInt, byteChar, byteDouble);
   }
}

輸出

Exception is here. Note it down:
java.io.FileNotFoundException: (No such file or directory)

使用Writer和呼叫Append()方法的方法

在這種可能的方法中,我們將對byte[]陣列列表應用使用writer和呼叫append()方法的多方法。透過遵循此方法,我們將對該byte陣列列表執行轉換,將其轉換為檔案。

示例

//Java Program Convert byte() array list to a file by using a writer and Call append() method
import java.io.StringWriter;
import java.io.Writer;
public class ARBRDD{
   static String writeByte(byte[] byteString,
   byte[] byteInt,
   byte[] byteChar,
   byte[] byteDouble){
      Writer writer = new StringWriter();
      try {
         writer
         .append(new String(byteString)
         + new String(byteDouble)
         + new String(byteChar)
         + new String(byteInt));
         writer.close();
      }
      catch (Exception e) {
         System.out.println("Exception Is Here: " + e);
      }
      return writer.toString();
   }
   public static void main(String args[]){
      String str = "Speed of the light is: ";
      int num = 7;
      char ch = 'e';
      double dec = 16.0;
      // Insert String value
      byte[] byteString = str.getBytes();
      // Insert int value
      byte[] byteInt = Integer.toString(num).getBytes();
      // Insert char value
      byte[] byteChar = Character.toString(ch).getBytes();
      // Insert double value
      byte[] byteDouble = Double.toString(dec).getBytes();
      // Call the method
      System.out.println(writeByte(byteString, byteInt,
      byteChar,
      byteDouble));
   }
}

輸出

Speed of the light is: 16.0e7

方法2

使用Java.io.ByteArrayInputStream和InputStream方法的子類。

使用Java.io.ByteArrayInputStream方法

在這種可能的方法中,我們將對byte[]陣列列表應用使用java.io.ByteArrayInputStream方法的多方法。透過遵循此方法,我們將對該byte陣列列表執行轉換,將其轉換為檔案。

BufferedImage bImage = ImageIO.read(new File("FILE NAME"));
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ImageIO.write(bImage, "FILE TYPE", bos );
byte [] data = bos.toByteArray();
ByteArrayInputStream bis = new ByteArrayInputStream(data);
BufferedImage bImage2 = ImageIO.read(bis);
ImageIO.write(bImage2, "FILE TYPE", new File("OUTPUT FILE") );
System.out.println("OUTPUT STATEMENT");

示例

//Java Program Convert byte() array list to a file by using a java.io.ByteArrayInputStream method
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
public class ARBRDD{
   public static void main(String a[]){
      String str = "Converting to input stream byte[] array to file";
      byte[] content = str.getBytes();
      int size = content.length;
      InputStream is = null;
      byte[] b = new byte[size];
      try {
         is = new ByteArrayInputStream(content);
         is.read(b);
         System.out.println("Operation Completed: "+new String(b));
      } catch (IOException e) {
         e.printStackTrace();
      } finally {
         try{
            if(is != null) is.close();
         } catch (Exception ex){
         }
      }
   }
}

輸出

Operation Completed: Converting to input stream byte[] array to file

使用InputStream方法的子類

在這種可能的方法中,我們將對byte[]陣列列表應用使用InputStream方法子類的多方法。透過遵循此方法,我們將對該byte陣列列表執行轉換,將其轉換為檔案。

示例

//Java program to create InputStream from byte array ByteArrayInputStream is sub-class of InputStream
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
public class ARBRDD{
   public static void main(String args[]) {
      String str = "I AM AN INDIAN";
      byte[] bytes = str.getBytes(StandardCharsets.UTF_8);
      InputStream is = new ByteArrayInputStream(bytes);
      String stringFromBytes = streamToString(is, StandardCharsets.UTF_8);
      System.out.println("File recreated from bytes is: " + str);
      OutputStream os = new ByteArrayOutputStream();
      try {
         os.write(bytes);
         os.close();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
   public static String streamToString(InputStream is, Charset encoding) {
      BufferedReader br
      = new BufferedReader(new InputStreamReader(is, encoding));
      StringBuilder sb = new StringBuilder(1024);
      try {
         String line = br.readLine();
         while (line != null) {
            sb.append(line);
            line = br.readLine();
         }
      } catch (IOException io) {
         System.out.println("Failed to read from the File");
         io.printStackTrace();
      } finally {
         try {
            br.close();
         } catch (IOException ioex) {
            System.out.println("Failed to close the Files");
            ioex.printStackTrace();
         }
      }
      return sb.toString();
   }
}

輸出

File recreated from bytes is: I AM AN INDIAN

結論

在Java環境中,writer類用於寫入字元流以傳遞與位元組陣列相關的引數。在本文中,我們學習瞭如何在Java環境中將特定的byte[]陣列列表轉換為特定檔案的各種方法。透過使用上述語法和演算法,我們構建了一些Java程式碼來有效地解釋問題陳述。

另請閱讀Java面試問答

更新於:2024年6月17日

4K+ 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告