Каковы преимущества BufferedReader по сравнению со сканером

вот код о глубине первого поиска в графиках. кто знает, почему в этом коде использовался класс bufferedReader? и почему функция nextInt не используется вместо этого? какова его привилегия? это для ускорения обработки? Спасибо :)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class Graph
{
int g[][];
int v,e;
int visited[];
void createGraph()throws IOException
{
    int a,b;
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("\n Enter Number Of Vertices = ");
    v=Integer.parseInt(br.readLine());
    System.out.print("\n Enter Number Of Edges = ");
    e=Integer.parseInt(br.readLine());  
    g=new int[v+1][v+1];
    for(int i=1;i<=e;i++)
    {
        System.out.print("\n Enter Edge Infomation ");
        System.out.print("\n From =");
        a=Integer.parseInt(br.readLine());
        System.out.print("\n To =");
        b=Integer.parseInt(br.readLine());  
        g[a][b]=g[b][a]=1;
    }
}
void callDFS()
{
    visited = new int[v+1];
    dfs(1);
}   
void dfs(int k)
{
    System.out.print(k + "\t");
    visited[k]=1;
    for(int i=1;i<=v;i++)
    {
        if(g[k][i] !=0 && visited[i]!=1)
        dfs(i);
    }
}
}
class DFS
{
public static void main(String args[])throws IOException
{
    Graph g = new Graph();
    g.createGraph();
    g.callDFS();
}
}

Ответы на вопрос(3)

Ваш ответ на вопрос