2013-03-29 4 views
10

को पाठ फ़ाइल के प्रिंट सामग्री मैं foo.txt नामक एक पाठ फ़ाइल है, और उसकी सामग्री के रूप में नीचे हैं:जावा: स्क्रीन

इस

पाठ

है जावा 7 में स्क्रीन पर इस सटीक फ़ाइल को मैं कैसे प्रिंट करूं?

+1

ऐसा लगता है जैसे आपको फ़ाइल से टेक्स्ट पढ़ने की आवश्यकता है। मैं आपको आश्वस्त कर सकता हूं कि जावा पर फ़ाइलों से पढ़ने के बारे में वेब पर बहुत सारी जानकारी है ... –

+1

मैं आपको बता रहा हूँ! मुझे यह कहीं भी नहीं मिल रहा है! और हाँ, मैं Google का उपयोग करता हूं। – user2151887

+1

इस पिछले प्रश्न में केवल वे विवरण हैं जिन्हें आप ढूंढ रहे हैं: http://stackoverflow.com/questions/2788080/reading-a-text-file-in-java। – RouteMapper

उत्तर

25
जावा 7 से पहले

:

BufferedReader br = new BufferedReader(new FileReader("foo.txt")); 
String line = null; 
while ((line = br.readLine()) != null) { 
    System.out.println(line); 
} 
  • ऐड अपवाद हैंडलिंग
  • ऐड धारा को बंद करने

जावा 7 के बाद से, धारा बंद करने के लिए कोई जरूरत नहीं है, क्योंकि यह autocloseable लागू करता है

try (BufferedReader br = new BufferedReader(new FileReader("foo.txt"))) { 
    String line = null; 
    while ((line = br.readLine()) != null) { 
     System.out.println(line); 
    } 
} 
+1

लेकिन एन्कोडिंग के साथ क्या? यह कोड प्लेटफ़ॉर्म डिफ़ॉल्ट एन्कोडिंग पर निर्भर करता है। – kkhipis

+1

ठीक है, मैं सबसे सरल मामला प्रदान करना चाहता था। यदि आप 'फ़ाइल रीडर' के बजाय स्पष्ट रूप से एन्कोडिंग निर्दिष्ट करना चाहते हैं, तो आप ['नया इनपुटस्ट्रीम रीडर ('] (http://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader का उपयोग करेंगे .html) ['नया फ़ाइल इनपुटस्ट्रीम (पथ टॉफ़ाइल)'] (http://docs.oracle.com/javase/7/docs/api/java/io/FileInputStream.html) ', )'। –

1

जावा के लिए उन नए लोगों के लिए और यह सोचकर कि जिरी का जवाब क्यों काम नहीं करता है, सुनिश्चित करें कि आप जो कहते हैं वह करें और अपवाद को संभालें या अन्यथा यह संकलित नहीं होगा। यहाँ न्यूनतम है:

import java.io.BufferedReader; 
import java.io.FileReader; 
import java.io.IOException; 

public class ReadFile { 

    public static void main(String args[]) throws IOException { 
     BufferedReader br = new BufferedReader(new FileReader("test.txt")); 
     for (String line; (line = br.readLine()) != null;) { 
      System.out.print(line); 
     } 
     br.close() 
    } 
} 
2
साथ

जावा 7 के जिरी का जवाब कोशिश के साथ-संसाधनों पर सुधार किया जा सकता है:

try (BufferedReader br = new BufferedReader(new FileReader("foo.txt"))) { 
    String line = null; 
    while ((line = br.readLine()) != null) { 
     System.out.println(line); 
    } 
} 

जोड़ें अपवाद अपनी पसंद के स्थान पर से निपटने, इस try या दूसरी जगहों में या तो ।

7

किसी ने भी सोचा नहीं कि स्कैनर का जिक्र करने लायक क्यों है?

Scanner input = new Scanner(new File("foo.txt")); 

while (input.hasNextLine()) 
{ 
    System.out.println(input.nextLine()); 
} 
0

प्रत्येक उदाहरण यहां FileReader का उपयोग करके एक समाधान दिखाता है। यदि आपको फ़ाइल एन्कोडिंग की परवाह करने की आवश्यकता नहीं है तो यह सुविधाजनक है। यदि आप अंग्रेजी की तुलना में कुछ अन्य भाषाओं का उपयोग करते हैं, तो एन्कोडिंग काफी महत्वपूर्ण है। कल्पना कीजिए कि आप इस पाठ

Příliš žluťoučký kůň 
úpěl ďábelské ódy 

और फ़ाइल के साथ फ़ाइल है का उपयोग करता है विंडोज़ -1250 प्रारूप। आप FileReader का उपयोग करते हैं तो आप इस परिणाम मिल जाएगा:

P��li� �lu�ou�k� k�� 
�p�l ��belsk� �dy 

तो इस मामले आप एनकोडिंग निर्दिष्ट करने के रूप में Cp1250 (Windows पूर्वी यूरोपीय), लेकिन FileReader आपको ऐसा करने की अनुमति नहीं है की आवश्यकता होगी में। इस मामले में आपको FileputputStead पर इनपुटस्ट्रीम रीडर का उपयोग करना चाहिए।

उदाहरण:

String encoding = "Cp1250"; 
File file = new File("foo.txt"); 

if (file.exists()) { 
    try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), encoding))) { 
     String line = null; 
     while ((line = br.readLine()) != null) { 
      System.out.println(line); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 
else { 
    System.out.println("file doesn't exist"); 
} 

मामले में आप चरित्र BufferedReader का उपयोग नहीं करते के बाद फ़ाइल चरित्र पढ़ना चाहते हैं।

try (InputStreamReader isr = new InputStreamReader(new FileInputStream(file), encoding)) { 
    int data = isr.read(); 
    while (data != -1) { 
     System.out.print((char) data); 
     data = isr.read(); 
    } 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
संबंधित मुद्दे