Develop a Java program that encrypts and decrypts files using the AES-256 encryption algorithm.
To create a Java program that encrypts and decrypts files using the AES-256 encryption algorithm, you will need to use the `Cipher` class from the `javax.crypto` package. Here's an example of how to do this:

```java
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.NoSuchAlgorithmException;

public class FileEncryption {

    public static void main(String[] args) {
        try {
            // Generate a secret key for AES-256 encryption
            KeyGenerator keyGen = KeyGenerator.getInstance("AES");
            keyGen.init(256);
            SecretKey secretKey = keyGen.generateKey();

            // Encrypt a file
            String inputFile = "input.txt";
            String encryptedFile = "encrypted.aes";
            encryptFile(secretKey, inputFile, encryptedFile);

            // Decrypt the encrypted file
            String decryptedFile = "decrypted.txt";
            decryptFile(secretKey, encryptedFile, decryptedFile);

        } catch (NoSuchAlgorithmException e) {
            System.err.println("Error: " + e.getMessage());
        }
    }

    private static void encryptFile(SecretKey secretKey, String inputFile, String outputFile) {
        processFile(Cipher.ENCRYPT_MODE, secretKey, inputFile, outputFile);
    }

    private static void decryptFile(SecretKey secretKey, String inputFile, String outputFile) {
        processFile(Cipher.DECRYPT_MODE, secretKey, inputFile, outputFile);
    }

    private static void processFile(int mode, SecretKey secretKey, String inputFile, String outputFile) {
        try {
            Cipher cipher = Cipher.getInstance("AES");
            cipher.init(mode, secretKey);

            byte[] inputBytes = Files.readAllBytes(Paths.get(inputFile));
            byte[] outputBytes = cipher.doFinal(inputBytes);

            try (FileOutputStream outputStream = new FileOutputStream(outputFile)) {
                outputStream.write(outputBytes);
            }

        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}
```

This program generates a secret key for AES-256 encryption, encrypts an input file (`input.txt`) and saves the encrypted data to a new file (`encrypted.aes`). Then it decrypts the encrypted file and saves the decrypted data to another file (`decrypted.txt`).

Note that you may need to install the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files if you encounter any issues related to key length restrictions. You can download them from Oracle's website:

https://www.oracle.com/java/technologies/javase-jce8-downloads.html

Follow the instructions in the downloaded archive to replace the existing policy files with the unlimited strength versions.