← Back to Core Java Course | Chapter 2: Input & Output | Lesson 4 of 6

Java का BufferedReader

BufferedReader typed text या file text को पहले इसे एक holding area में collect करके तेज़ी से पढ़ता है, एक spoon के बजाय एक bucket से पानी scoop करने जैसा। यह input पाने का एक और तरीका है।
Syntax
java
import java.io.*;

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine();

Introduction to BufferedReader

java.io से BufferedReader किसी और reader को wrap करता है (आमतौर पर new InputStreamReader(System.in)) और internally input के chunks buffer करता है, जो धीमी, repeated low-level read calls घटाता है।

उदाहरण: Introduction to BufferedReader

java
import java.io.BufferedReader;
import java.io.StringReader;
public class Main {
	public static void main(String[] args) throws Exception {
		// new BufferedReader(new InputStreamReader(System.in)) is typical; StringReader stands in here
		BufferedReader br = new BufferedReader(new StringReader("buffered input"));
		System.out.println(br.readLine());
	}
}

Reading a Line of Text

readLine() एक समय में text की एक पूरी line खींचता है और इसे एक String के रूप में return करता है, या जब पढ़ने के लिए कुछ न बचे तो null return करता है -- उस null की जांच करना एक loop में end-of-input detect करने का तरीका है।

उदाहरण: Reading a Line of Text

java
// Import java.io.BufferedReader so it can be used by its short name
import java.io.BufferedReader;
// Import java.io.StringReader so it can be used by its short name
import java.io.StringReader;
// Define the class Main
public class Main {
	// Program entry point: the JVM starts running here
	public static void main(String[] args) throws Exception {
		// Create a new BufferedReader object and store it in br
		BufferedReader br = new BufferedReader(new StringReader("first line"));
		// Declare line and set it to br.readLine()
		String line = br.readLine();
		// Print a line to the console
		System.out.println(line != null ? line : "end of input");
	}
}

Reading Numbers

चूंकि readLine() आपको सिर्फ raw text देता है, "42" को एक असली int में convert करने का मतलब है returned string पर खुद explicitly Integer.parseInt() call करना -- BufferedReader कोई numeric parsing नहीं करता।

उदाहरण: Reading Numbers

java
import java.io.BufferedReader;
import java.io.StringReader;
public class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new StringReader("42"));
		int number = Integer.parseInt(br.readLine()); // readLine() only gives raw text
		System.out.println(number + 1);
	}
}

Handling Exceptions

लगभग हर BufferedReader method declare करता है कि यह IOException throw कर सकता है, एक checked exception, इसलिए आपका code तब तक compile भी नहीं होगा जब तक आप calls को एक try-catch में wrap न करें या enclosing method पर throws IOException declare न करें।

उदाहरण: Handling Exceptions

java
import java.io.BufferedReader;
import java.io.StringReader;
import java.io.IOException;
public class Main {
	public static void main(String[] args) {
		BufferedReader br = new BufferedReader(new StringReader("data"));
		try {
			System.out.println(br.readLine());
		} catch (IOException e) { // readLine() throws a checked exception
			System.out.println("I/O error: " + e.getMessage());
		}
	}
}

BufferedReader vs Scanner

BufferedReader का बड़ा internal buffer इसे line by line बड़ी files पढ़ने के लिए noticeably तेज़ बनाता है, जबकि Scanner की built-in type parsing (nextInt, nextDouble) इसे छोटे, interactive command-line programs के लिए ज़्यादा convenient बनाती है।

उदाहरण: BufferedReader vs Scanner

java
import java.io.BufferedReader;
import java.io.StringReader;
public class Main {
	public static void main(String[] args) throws Exception {
		// BufferedReader: faster for large files, no built-in type parsing
		BufferedReader br = new BufferedReader(new StringReader("line by line"));
		System.out.println(br.readLine());
		// Scanner: slower, but nextInt()/nextDouble() parse types for you directly
	}
}
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. यह भूल जाना कि readLine() एक String (या input के आखिर में null) return करता है, इसलिए numbers को Integer.parseInt() से convert किया जाना चाहिए।
  2. IOException handle न करना, जो एक checked exception है, इसलिए code compile नहीं होता।
  3. Reader बंद न करना, या try-with-resources उपयोग न करना।
🔒

Chapter Quiz — Complete all 6 topics to unlock

0/6 topics done

Complete these topics first:

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.