Java 中的物件壓縮及示例


Java 中的物件壓縮

透過稱為 Java 物件壓縮的方法來縮小 Java 物件的大小,可以更輕鬆地儲存和傳輸它們。在此過程中,將使用各種類和方法來壓縮物件,這可以極大地減少資料的大小。在傳送壓縮物件後,接收方可以透過解壓縮壓縮物件來檢索完整的資訊。當處理稀缺資源(如網路頻寬或磁碟空間)時,此方法可能很有用。

在本文中,我們將進一步瞭解 Java 物件壓縮。

什麼是 Java 中的物件壓縮?

如前所述,物件壓縮是 Java 中使用的一種方法,它透過利用不同的類和方法來減小物件的大小。此過程涉及壓縮物件以減小其大小,在透過網路傳送資料或將其儲存在有限的磁碟空間上時,這可能很有用。當壓縮物件傳遞給接收方時,他們可以解壓縮它以訪問所有資料。

比較檔案壓縮前後的尺寸可以幫助您理解物件壓縮的有效性。透過這樣做,您可以看到檔案尺寸的顯著減少。

Java 中物件壓縮的重要性

Java 中的物件壓縮是一種技術,可以極大地提高透過網路傳輸大量物件的效率。在傳送物件時,壓縮在傳送方應用,並且在接收方接收時解壓縮物件。這種方法使我們能夠在兩個端點之間傳輸大量物件,同時最佳化網路效能。總之,Java 物件壓縮是提高網路物件傳輸效率的有效解決方案,尤其是在處理大量資料時。

Java 如何實現物件壓縮

Java 物件壓縮可以透過使用 GZIPOutputStream 類來完成,該類提供了一個流過濾器,用於以 GZIP 檔案格式寫入壓縮資料。GZIPOutputStream 類用於將物件的壓縮版本寫入外部檔案。此類擴充套件了 OutputStream 並使用 ObjectOutput 和 ObjectStreamConstants。

Java 類必須透過擴充套件 Serializable 類來進行壓縮。這樣我們才能實現壓縮物件的目標,該物件將由 User 物件表示,我們必須將其設為可序列化的。透過使它可序列化,我們允許 User 物件在傳輸過程中進行壓縮和解壓縮,從而促進高效的資料網路傳輸。

Java 如何實現物件壓縮

在本例中,我們將瞭解如何壓縮 Java 物件。首先,我們必須透過定義 java.io.Serializable 介面來驗證物件是否可序列化。

User 物件將作為示例物件。一旦物件可序列化,GZIPOutputStream 類就可以壓縮它。然後,可以使用 ObjectOutputStream 類將編碼後的物件寫入外部檔案。下面提供了完整的程式碼段。

演算法

  • 步驟 1 - 在使用管理 ZIP 和 GZIP 檔案格式的類之前,必須首先載入 java.util.zip 包。

  • 步驟 2 - 壓縮物件的第一個步驟是建立該物件的類。例如,您的 User 類可能包含屬性,如 firstName、lastName、id、login 和 password。

  • 步驟 3 - 然後必須使用 Java GZIPOutputStream 方法壓縮實體。為此,請建立類的物件的新副本,併為其提供一個 OutputStream 物件。

  • 步驟 4 - 如果要將編碼後的物件儲存到檔案或流中,請使用 FileOutputStream 類。這樣做允許您將壓縮的項儲存在檔案中以供以後訪問。

示例 1

給定的程式碼是使用 Java 中的 GZIPOutputStream 壓縮物件的示例。

package org.codejava.util.support;
import java.io.Serializable;
public class User implements Serializable {
   private Long id;
   private String username;
   private String password;
   private String firstName;
   private String lastName;
   public User() {
   }
   public Long getId() {
      return id;
   }
   public void setId(Long id) {
      this.id = id;
   }
   public String getUsername() {
      return username;
   }
   public void setUsername(String username) {
      this.username = username;
   }
   public String getPassword() {
      return password;
   }
   public void setPassword(String password) {
      this.password = password;
   }
   public String getFirstName() {
      return firstName;
   }
   public void setFirstName(String firstName) {
      this.firstName = firstName;
   }
   public String getLastName() {
      return lastName;
   }
   public void setLastName(String lastName) {
      this.lastName = lastName;
   }
   @Override
   public String toString() {
      return "User{" + "id=" + id + ", username='" + username + ''' + ", password='" + password + ''' + ", firstName='" + firstName + ''' + ", lastName='" + lastName + ''' +'}';
   }
   public static void main(String[] args) {
      User user = new User();
      user.setId(1L);
      user.setUsername("Tutorialspoint");
      user.setPassword("learn");
      user.setFirstName("Tutorials");
      user.setLastName("Point");
      System.out.println(user);
   }
}

輸出

User{id=1, username='Tutorialspoint', password='learn', firstName='Tutorials', lastName='Point'}

結論

在處理有限的磁碟空間或網路傳輸時,壓縮 Java 物件可以是一種有用的方法,以最小化要儲存或傳輸的資料量。這可以極大地提高網路效能,並使有效移動大量物件變得更加容易。

Java 透過 Serializable 類和其他類(如 GZIPOutputStream)支援物件壓縮。Java 的物件壓縮功能為處理大量資料集提供了有利的工具。Java 物件編碼可以顯著加快網路上的物件傳輸速度。

更新於: 2023-07-14

191 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告