Soru DataInputStream kullanımdan kaldırılmış readLine () yöntemi


Java 6 kullanıyorum DataInputStream in = new DataInputStream(System.in); kullanıcı girişini okumak için ReadLine () kullanımdan kaldırıldığında. Kullanıcı değerini okumak için çalışma nedir?

DataInputStream in = new DataInputStream(System.in);
int num;
try
{
  num = Integer.parseInt(in.readLine()); //this works

  num = Integer.parseInt(in);  //just in doesnt work.
}
catch(Exception e)
{
}

readLine () kullanımdan kaldırıldığında olması gerektiği gibi açıklayınız.


25
2018-04-10 11:17


Menşei


Lütfen bir dahaki sefere karşılaştırılabilir bir test vakası (veya ilgili hatayla başarısız bir test vakası) ekleyin. - the_drow
Test durumu? İhmalden konuşuyoruz. Yukarıdaki kodu bir editöre koyarsınız ve sarı çizgiyi döndürür ve "readLine kullanımdan kaldırılır" deyin. Kimse, bir java yönteminin kullanımdan kaldırıldığını söyleyen bir test vakasına ihtiyaç duymuyor. İşte geçerli uyarı: docs.oracle.com/javase/7/docs/api/java/io/... - Perry Tew


Cevaplar:


InputStream temelde ikili bir yapıdır. Okumak istiyorsanız Metin veri (ör. konsoldan) kullanmalısınız Reader bazı açıklamaların Bir dönüştürmek için InputStream içine Reader, kullan InputStreamReader. O zaman bir BufferedReader etrafında Readerve kullanarak bir satırı okuyabilirsiniz BufferedReader.readLine().

Daha fazla alternatif:

  • Kullanın Scanner inşa yuvarlak System.in, ve Çağrı yap Scanner.nextLine
  • Kullanın Console (şuradan alındı System.console()) ve Çağrı yap Console.readLine

30
2018-04-10 11:20





Kullanımdan kaldırılma ve alternatifler genellikle zaten açık bir şekilde açıklanmıştır. javadocs. Yani cevabı aramak için ilk yer olurdu. İçin DataInputStream Bulabilirsin İşte. readLine() yöntem İşte. İşte alaka bir özü:

Kullanımdan kaldırılan. Bu yöntem baytları karakterlere doğru şekilde dönüştürmez. JDK 1.1'den itibaren, metin satırlarını okumak için tercih edilen yol BufferedReader.readLine() yöntem. Kullanan programları DataInputStream satır okumak için sınıf kullanmak için dönüştürülebilir BufferedReader formun kodunu değiştirerek sınıf:

    DataInputStream d = new DataInputStream(in);

ile:

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

Karakter kodlaması daha sonra kurucuda açıkça belirtilebilir. InputStreamReader.

Scanner Java 1.5'den beri tanıtılan bu da iyi (ve modern) bir alternatiftir.


24
2018-04-10 11:27





Aşağıdaki çalışmıyor,

num = Integer.parseInt(in);

Bunun yerine kullanmalısınız:

num = Integer.parseInt(in.readLine());

readLine() satır sonu yazılana kadar satır girişini okuyacaktır.


0
2017-08-17 14:56