Red de conocimiento informático - Aprendizaje de programación - En Java, ¿cómo se lee un archivo, se cuenta la frecuencia de cada letra y se escriben las 26 letras y frecuencias de forma recursiva?

En Java, ¿cómo se lee un archivo, se cuenta la frecuencia de cada letra y se escriben las 26 letras y frecuencias de forma recursiva?

paquete com.sanqing.ceshi;

importar java.io.File;

importar java.io.FileInputStream;

importar java.io.IOException;

importar java.io.InputStream;

importar java.util.ArrayList;

//Cómo leer un archivo en java , luego cuenta la frecuencia de cada letra y escribe recursivamente las 26 letras y frecuencias.

public class ceshi {

public static void main(String[] args) {

/* * Este programa completa principalmente la lectura de un archivo del disco duro contenido y luego contar la frecuencia de aparición de 26 letras en inglés* Primero, debe crear un nuevo archivo 1.txt en su unidad D, que restringe la entrada solo de letras minúsculas, y luego ejecutar el programa para ver los resultados* /

Archivo archivo = nuevo Archivo("d:" + File.separator + "1.txt");

InputStream ips = null;

ArrayList arr = new ArrayList();

try {

System.out.println("Lea el contenido del archivo en bytes, un byte a la vez: " );

ips = new FileInputStream(archivo);

int tempbyte;

mientras ((tempbyte = ips.read()) != -1 ) {

arr.add(tempbyte);

// System.out.print((char)tempbyte);//Leer en unidades de un byte, leer El código ASCII es recibido

}

ips.close();

} catch (IOException e) {

e.printStackTrace ();

return;

}

System.out.println(arr);

//System.out.println (tongjipinlv(arr) ));

System.out.println("El contenido leído del archivo, según la frecuencia de las letras de la a a la z, es el siguiente:");

para (int arr1:tongjipinlv(arr)){

System.out.print(arr1+",");

}

}

//Frecuencia estadística de letras

public static int[] tongjipinlv(ArrayList arr) {

char[] lower = { 'a', 'b', 'c', 'd', 'e', ​​'f', 'g', 'h', 'i', 'j', 'k',

'l', ' m' , 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',

'x ', 'y', 'z' };//Almacenamiento 26 letras inglesas

>

int[] recuento ={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0};

for (int s: arr) {

System.out.print((char)s);//Atravesar El contenido del archivo es de tipo int y se convierte a tipo char

}

System.out.println();

for (int i=0 ;i

for(int j=0;j

if (arr.get(j) = = inferior[i]) {

++count[i];

//recuento de retornos;

}

else{

}

}

recuento de devoluciones;

}

}

No Si lo entiendes, puedes preguntar y espero que lo adoptes. ! !