Hola este es mi código, de alguna manera todavía me dan error de ahí abajo, que he descrito error, cualquier ayuda se agradece. Yo no soy muy experto con la importación de este y, especialmente, de la API en sí

   import java.io.BufferedInputStream;
    import java.io.DataInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;

    public class MyClass {

        public static void main(String[] args) throws IOException {
            File file = new File("Sinatra.txt");
            FileInputStream fis = new FileInputStream(file);
            BufferedInputStream bis = new BufferedInputStream(fis);
            DataInputStream dis = new DataInputStream(bis);

            if (dis.available() != 0) {
                //Get the line.
                String s = dis.readLine();
                //Put words to array.
                String[] sParts = s.split(" ");
                //Initialize word longest length.
                int longestLength = 1;
                for (String strx : sParts) { //Go through each sPart, the next one is called strx
                    //If the document has word longer than.
                    if (longestLength < strx.length())
                        //Set new value for longest length.
                        longestLength = strx.length();
                }
                //Because array index from "0".
                int[] counts = new int[longestLength + 1];
                for (String str : sParts) {
                    //Add one to the number of words that length has
                    counts[str.length()] += 1;
                }
                //We use this type of loop since we need the length.
                for (int i = 1; i < counts.length; i++) {
                    System.out.println(i + " letter words: " + counts[i]);
                }
            }
        }
    }

    //Result:
    //       1 letter words: 0
    //       2 letter words: 2
    //       3 letter words: 0
    //       4 letter words: 1
    //       5 letter words: 0
    //       6 letter words: 2
    //       7 letter words: 2
    //       8 letter words: 0
    //       9 letter words: 3

Hola este es mi código y cuando trato de compilar lo puedo conseguir
error diciendo:

Note: MyClass.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

Gracias por la ayuda 🙂

  • 1) no es un error, y 2) volver a compilar con la opción de línea de comandos -Xlint:en desuso para más detalles.
  • cursivanegrita javac MyClass.java -Xlint:deprecation MyClass.java:17: warning: [deprecation] readLine() in DataInputStream has been deprecated String s = dis.readLine(); ^ Esto es lo que me sale
  • También usted no ha hecho una pregunta.
InformationsquelleAutor Anton9988 | 2015-08-01

2 Comentarios

  1. 1

    Esos no son errores, son de advertencia, el código compilado.

    Para explicar estas líneas :

    Nota: MyClass.java los usos o anula en desuso de la API.

    Usted está haciendo una llamada de DataInputStream#readLine que está en desuso desde el JDK 1.1 como por la documentación :

    En desuso.

    Este método no se convierten correctamente bytes a
    los caracteres. Como el JDK 1.1, la forma preferida para leer líneas de texto es
    a través de las clases bufferedreader.readLine() método. Los programas que utilizan el
    DataInputStream clase a leer las líneas pueden ser convertidos para el uso de la
    Clases bufferedreader clase mediante la sustitución de código del formulario:

    DataInputStream d = new DataInputStream(in);   

    con:

    BufferedReader d = new BufferedReader(new InputStreamReader(in));

    Como para la segunda línea :

    Nota: vuelva a Compilar con -Xlint:en desuso para más detalles.

    Simplemente le dice a usted la opción de utilizar cuando se compila para obtener más detalles acerca de dónde se está utilizando en desuso cosas.

    Edición :

    Por tu comentario, he aquí cómo el código que se parece a :

    import java.io.InputStreamReader;//Add these two imports
    import java.io.BufferedReader;
    ...
    BufferedReader br = new BufferedReader(new InputStreamReader(bis));//Use BufferedReader as suggested by the doc instead of DataInputStream
    ...
    String s = br.readLine();//Read with the non-deprecated readLine of BufferedReader
    • Hey cuando me swap de estos 2 me acaba de llegar montón de «no se puede encontrar un símbolo»
    • ¿Sabe usted tal vez exactamente cómo mi código debe ser similar ya que me confundo y tengo un montón de no se puede encontrar el símbolo
    • Savard Hey yo lo hice pero aún tengo un error Al escribir en la línea 18 programa no reconoce br si ( fr.disponible() != 0) {
    • Seleccione Analyze > Inspect Code para ejecutar pelusa en tu proyecto
  2. 1

    De la DataInputStream documentación de la API:

    readLine()

    Obsoleto.

    Este método no se convierten correctamente bytes a caracteres. Como el JDK 1.1, la forma preferida para leer líneas de texto es a través de las clases bufferedreader.readLine() método. Los programas que utilizan la clase DataInputStream a leer las líneas pueden ser convertidos a utilizar las clases bufferedreader clase mediante la sustitución de código del formulario:

    DataInputStream d = new DataInputStream(in);

    con:
    BufferedReader d
    = new BufferedReader(new InputStreamReader(in));

    Así como usted puede ver, en la línea de String s = dis.readLine() en su código, el uso de un obsoleto método. Esto significa que hay una mejor opción para hacer lo que estás haciendo (como se señaló anteriormente). Aunque el método está en desuso, es probable que el trabajo en algunos casos. Pero no está garantizado para cumplir su contrato, y por lo tanto es mejor utilizar el similar, pero consistente BufferedReader.readLine() método.

    • ¿Sabe usted tal vez exactamente cómo mi código debe ser similar al que ya estoy totalmente confundido con esto. No sé por qué, parece sencillo

Dejar respuesta

Please enter your comment!
Please enter your name here