Как ввести строку из буферизованного устройства чтения?

StackOverflow https://stackoverflow.com/questions/1833108

Вопрос

Я тоже в основном использую Scanner и тоже хочу попробовать использовать буферизованный ридер:вот что у меня есть на данный момент

import java.util.*;
import java.io.*;
public class IceCreamCone 
{
// variables
String flavour;
int numScoops;
Scanner flavourIceCream = new Scanner(System.in);

// constructor
public IceCreamCone()
{

}
// methods
public String getFlavour() throws IOexception 
{
    try{

    BufferedReader keyboardInput;
    keyboardInput = new BufferedReader(new InputStreamReader(System.in));
    System.out.println(" please enter your flavour ice cream");
    flavour  =  keyboardInput.readLine();
    return keyboardInput.readLine();
    }
    catch (IOexception e)
    {
        e.printStackTrace();
    }
}

я почти уверен, что получу целое число, которое ты можешь сказать

Integer.parseInt(keyboardInput.readLine());

но что мне делать, если я хочу строку

Это было полезно?

Решение

keyboardInput.readLine() уже возвращает строку, поэтому вам просто нужно сделать:

return keyboardInput.readLine();

(обновлять)

А readLine метод выдает IOException.Вы либо бросаете исключение:

public String getFlavour() throws IOException {
   ...
}

или вы обрабатываете это в своем методе.

public static String getFlavour() {
    BufferedReader keyboardInput = null;
    try {
        keyboardInput = new BufferedReader(new InputStreamReader(System.in));
        System.out.println(" please enter your flavour ice cream");
        // in this case, you don't need to declare this extra variable
        // String flavour = keyboardInput.readLine();
        // return flavour;
        return keyboardInput.readLine();
    } catch (IOException e) {
        // handle this
        e.printStackTrace();
    }
    return null;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top