Tarayıcı kullanarak dosyadan bir bayt dizisi okuyabilir miyim?

0

Soru

Java.util.tarayıcı, Byte dahil olmak üzere çeşitli veri türlerini okuyabilir, ancak byte [] ne olacak? Oracle'ın web sitesinde ve diğer web sitelerinde bilgi aradım, ancak byte [] taramasıyla ilgili bilgi bulmakta sorun yaşıyorum, bu yüzden mümkün olup olmadığını merak ediyorum. Bir Java kursu alıyorum ve şifrelenmiş bir şifreyi bir byte [] içine saklamak, byte[] dosyasını dosyaya yazmak ve ardından byte[] dosyasını tekrar okumakla görevlendirildik. Bu görevin gereksinimleri göz önüne alındığında, bayt [] ' ı bir dizeye dönüştüremiyorum, bayt [] olarak kalması gerekiyor. -- Önerileriniz için şimdiden teşekkür ederiz!

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

En iyi cevabı

3

şifrelenmiş bir şifreyi bir byte [] içine saklamak, byte [] dosyasını dosyaya yazmak ve ardından byte[] dosyasını tekrar okumakla görevlendirildik.

A java.util.Scanner bu görev için gerekli değildir.

Bir yazabilirsiniz byte[] bir kullanarakOutputStream ve bir oku byte[] bir kullanarakInputStream.

Okuma ve yazma için kısa yol yöntemleri vardır byte[] diziler deFiles yardımcı yöntemler:

  • 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

öneriniz için teşekkür ederiz! Bunlar benim için yeni yöntemler, bu yüzden onları öğrenmekten mutluyum.
mak95

Operasyonun stdın'den şifreyi okuma bağlamında ju tarayıcısına atıfta bulunabileceğine inanıyorum.
Emil Koutanov
2

java.util.Scanner bir metin tarayıcısıdır. Yani, girdiden okuduğu baytların (stdin, diyelim) belirli bir karakter kümesine, genellikle UTF-8'e uyması beklenir.

Bu durumda nextByte(), bir baytı doğrudan ham bayt olarak okumaz ve döndürmez. Aksine, bir metni okur ve bir sonraki belirteci bayt olarak döndürür. İşte dokümantasyonun ne olduğu java.util.Scanner.nextByte(radix) diyor (vurgu benim tarafımdan eklendi):

Bir sonraki belirteç, yukarıda tanımlanan Tamsayı normal ifadesiyle eşleşirse, belirteç, yerel ayara özgü tüm önekleri, grup ayırıcıları ve localespecific soneklerini kaldırarak, ASCII olmayan rakamları Karakter aracılığıyla asciidigits'e eşleyerek sanki bir bayt değerine dönüştürülür.eğer yerel belirli negatif ön ekler ve son ekler mevcuttu ve Byte sonuç dizesi geçen rakam, başına eklenen anegative işareti ( -).Belirtilen radix ile parseByte.

Yani, yapmanız gereken dize olarak okumak ve doğru karakter kümesini (genellikle UTF-8) kullanarak baytlara dönüştürmektir.

2021-11-24 05:28:28

o da çok mantıklı, ve ben hissediyorum çok saçma bırakırsın o benim byte[] dosya aslında bir dize. Dosyaya yazmak için toString yöntemimi kullandım, bu yüzden tabii ki okuduktan sonra byte [] ' a geri dönmem gerekiyor. Hatırlatma için teşekkür ederim.
mak95

Diğer dillerde

Bu sayfa diğer dillerde

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