FileInputStream fin = new FileInputStream("archive.tar.xz"); BufferedInputStream in = new BufferedInputStream(fin); FileOutputStream out = new FileOutputStream("archive.tar"); XZCompressorInputStream xzIn = new XZCompressorInputStream(in); final byte[] buffer = new byte[buffersize]; int n = 0; while (-1 != (n = xzIn.read(buffer))) { out.write(buffer, 0, n); } out.close(); xzIn.close();