Q:

Mostrar TOTAL archivos ocultos de un directorio

Tengo este programa:
public class TestFileClass {
         public static void main(String[] args) {
                     java.io.File file = new java.io.File("image/us.gif");
                     System.out.println("Existe " + file.exists() );
                     System.out.println("tiene un peso de " + file.length() + " bytes");
                     System.out.println("Puede ser leido? " + file.canRead());
                     System.out.println("Puede ser escrito? " + file.canWrite());
                     System.out.println("Es un directorio? " + file.isDirectory());
                     System.out.println("Es un archivo? " + file.isFile());
                     System.out.println("Es absoluto? " + file.isAbsolute());
                     System.out.println("esta oculto? " + file.isHidden());
                     System.out.println("La ruta absoulta es " +
                     file.getAbsolutePath());
                     System.out.println("Fue modificado por ultima vez en: " +
                     new java.util.Date(file.lastModified()));
         }
}

Y ahora lo que necesito es mostrar de los archivos ocultos cuantos son en total.
Es decir el programa leerá el total de archivos y quiero que me diga el total pero solo de los ocultos. 
Supongo que tengo que recorrer, pero no acabo de entender dónde introducir el hidden o cómo hacerlo... Lo he hecho con el total sin tener en cuenta los ocultos:
File miDir = new File (".");

String[] arregloArchivos = miDir.list();

int numArchivos = arregloArchivos.length;
System.out.println("Total de entradas:" +numArchivos); 

Pero tampoco sé si es correcto del todo. Y ahora necesito lo mismo pero de los ocultos.

A:

Existen los métodos File#listFiles y File#listFiles(FileFilter) que pueden ayudarte con la consigna.
El primero devuelve un arreglo con los Files que están dentro del File actual, siempre y cuando estés en una carpeta. Puedes recorrer estos archivos y carpetas y verificar si están ocultos:
File[] archivosYCarpetasInternos = miDir.listFiles();
for (File archivoOCarpeta : archivosYCarpetasInternos) {
    //si está oculto, hacer algo...
    if (archivoOCarpeta.isHidden()) {
        /* aquí la lógica para lo que tengas que hacer */
    }
}

El segundo sirve para obtener los archivos y carpetas que cumplan con ciertas condiciones. Ejemplo (usa Java 8):
//se envía una expresión lambda que cumple con la definición de la interfaz funcional
//el lambda significa:
//- f: argumento a usar
//- ->: para el argumento a la izquierda, aplicar la
//      funcionalidad de la derecha
// f.isHidden(): devolver el resultado del método File#isHidden
//               para el archivo que estamos visitando
File[] archivosYCarpetasInternos = miDir.listFiles(f -> f.isHidden());
//el valor de archivosYCarpetasInternos serán todos aquellos
//archivos y carpetas que se encuentran dentro de tu carpeta
//y que cumplen con la condición `File#isHidden` con valor `true`

