Así que estoy haciendo un proyecto para la escuela donde tengo que leer en un archivo de datos binarios y utilizar para hacer las estadísticas, como la fuerza y la sabiduría, para los personajes. Se establece para los primeros 8 bits forman un solo stat.

Me pregunto cuál es la sintaxis real para hacer esto es. Es como leer archivos de texto, como esta.

File file = new File("CharacterStats.dat");
Scanner inputScanner = new Scanner(file);

inputScanner.next();
InformationsquelleAutor Ionterac | 2016-04-15

2 Comentarios

  1. 11

    Si usted está utilizando el JDK 7+ la forma más sencilla sería:

    Path path = Paths.get("CharacterStats.dat");
    byte[] fileContents =  Files.readAllBytes(path);

    Y, a continuación, hacer con que la matriz de lo que usted desea.

    Desde un byte consta de 8 bits puede acceder a los primeros 8 bits por fileContents[0] y, a continuación, probablemente controlar el flujo de tu programa utilizando las operaciones bit a bit.

  2. 3

    Lugar de un Escáner que se utiliza algo como esto:

    File file = new File("CharacterStats.dat");
    FileInputStream fis = new FileInputStream(file);
    ObjectInputStream ois = new ObjectInputStream(fis);
    YourClass object = (YourClass) ois.readObject();

    Donde la tercera línea está creando un nuevo objeto a partir de la secuencia, y la conversión al objeto que desea. Usted debe hacer esto porque java no puede saber qué objeto está siendo leído.

    EDIT: Esto es para la lectura de los datos binarios como los Objetos serializados. Yo podría haber malinterpretado tu pregunta como sus «stats» de ser de los Objetos.

    • Gracias. Pero ahora, ¿cómo hago para acceder a todos los ceros y unos para el uso de ellos. Lo siento, pero yo realmente sólo tienen experiencia de lectura en archivos de texto.
    • No. que es lo que la «readObject()» método de la ObjectInputStream hace por usted. Interpreta el binario desde el archivo de texto como un Objeto java. Sin embargo, usted necesita decirle al compilador que tipo de Objeto que realmente es, lo que usted hace por fundición.
    • Así que si me lo echó como un int convertirá automáticamente 010010 a los 18 años? Perdón por hacer tantas preguntas de sus ayudando mucho.

Dejar respuesta

Please enter your comment!
Please enter your name here