Poate am citit-o matrice octet din fișier folosind scanner?

0

Problema

Java.util.scanerul poate citi o varietate de tipuri de date într-inclusiv Octet, dar ceea ce despre byte[]? Am căutat informații pe pagina de internet a Oracle, precum și alte site-uri, dar am probleme în a găsi informații pe scanare byte[], așa că mă întrebam dacă e posibil. Eu sunt de a lua un curs Java și am fost însărcinat cu stocarea criptată a parolei într-un byte[], scrie byte[] pentru fișier, apoi citește byte[] înapoi. Având în vedere cerințele de această sarcină, eu nu pot converti byte[] la un șir de caractere, trebuie să rămână un byte[]. - Vă mulțumesc anticipat pentru sugestii!

java java.util.scanner
2021-11-24 04:12:51
2

Cel mai bun răspuns

3

am fost însărcinat cu stocarea criptată a parolei într-un byte[], scrie byte[] pentru fișier, apoi citește byte[] înapoi.

O java.util.Scanner nu este necesar pentru această sarcină.

Puteți scrie un byte[] folosind un OutputStream și a citit-o byte[] folosind un InputStream.

Sunt short-cut metode pentru citire și scriere byte[] tablouri, precum și în Files metode de utilitate:

  • public static Path write​(Path path, byte[] bytes, OpenOption... options) throws IOException
  • public static byte[] readAllBytes​(Path path) throws IOException
2021-11-24 04:21:24

mulțumesc pentru sugestie! Acestea sunt metode noi pentru mine deci, eu sunt fericit să le învețe.
mak95

Cred că operațiunea ar putea fi referindu-se la j.u.scanner în contextul de lectură parola de la stdin.
Emil Koutanov
2

java.util.Scanner este un text scanner. Care este, de octeți se citește de la intrare (stdin, să zicem) este de așteptat să se conformeze unui anumit set de caractere, de obicei, UTF-8.

În caz de nextByte()nu citesc și să se întoarcă un octet ca un raw octet direct. Mai degrabă, se citește un text și returnează următorul semn ca un octet. Aici e ceea ce documentația de java.util.Scanner.nextByte(radix) spune (subliniere adăugată de mine):

Dacă următorul simbol meciuri Întreg expresie regulată definite mai sus, atunci token-ul este transformat într-un octet de valoare ca prin eliminarea tuturor specifice locale prefixe, grupul de separatoare, și localespecific sufixe, apoi cartografiere non-ASCII cifre în ASCIIdigits prin Caracter.cifre, precedarea anegative semnul (-) dacă specifice locale negativ prefixele și sufixele au fost prezenți, și trece șirul rezultat pentru Octet.parseByte cu thespecified radix.

Deci, ce va trebui să faceți este să citiți ca șir de caractere și de a converti în bytes, folosind dreptul de caractere (UTF-8, de obicei).

2021-11-24 05:28:28

asta face sens perfect, și mă simt atât de prost pentru că am uitat că-mi byte[] în dosar a fost de fapt un șir de caractere. Mi-am folosit metoda toString a scrie în fișier deci, desigur, am doar nevoie pentru a converti înapoi la byte[] după ce am citit-o în. Mulțumesc pentru atenționare.
mak95

În alte limbi

Această pagină este în alte limbi

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................