प्रोग्राम को उस फ़ाइल का उपयोग कैसे करें जिसका नाम आप कमांड लाइन पर निर्दिष्ट करते हैं

मैं कमांड लाइन में "lab13.txt" में पढ़ने के लिए इस प्रोग्राम को कैसे प्राप्त कर सकता हूं? मैं इसे एक घंटे से अधिक समझने की कोशिश कर रहा हूं और कुछ भी काम नहीं कर रहा था।

प्रॉम्प्ट "एक ऐसा प्रोग्राम लिखें जो फ़ाइल में लाइनों की संख्या निर्धारित करता है और प्रदर्शित करता है जिसका नाम आप कमांड लाइन पर निर्दिष्ट करते हैं। Lab13.txt के साथ अपने प्रोग्राम का परीक्षण करें।"

import java.util.Scanner;
import java.io.*;
class homework
{
    public static void main(String[] args) throws IOException
    {
        Scanner inFile= new Scanner(new File("lab13.txt"));
        int count=0;
        String s;
        while (inFile.hasNextLine())
        {
            s = inFile.nextLine();
            count++;
        }
        System.out.println(count + " Lines in lab13.txt");
        inFile.close();
    }
}
0

3 उत्तर

यदि आप चाहते हैं कि उपयोगकर्ता कमांड लाइन या फ़ाइल में कंसोल से फ़ाइल नाम इनपुट करने में सक्षम हो, तो इसका उपयोग करने का प्रयास करें

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Please enter filename : ");
    String filename = null;
    try {
        filename = reader.readLine();
    } catch (IOException e) {
        e.printStackTrace();
    } 

फिर आप फ़ाइल नाम को अपने स्कैनर ऑब्जेक्ट में प्लग कर सकते हैं

0
जोड़ा
Try this

In your code you need to replace new File("lab13.txt") with new File(args[0])

कमांड लाइन के लिए

public static void main(String[] args) {

File inFile =null;
  if (0 < args.length) {
      File inFile = new File(args[0]);
  }

    BufferedReader br = null;

    try {

        String sCurrentLine;

        br = new BufferedReader(new FileReader(inFile));

        while ((sCurrentLine = br.readLine()) != null) {
            System.out.println(sCurrentLine);
        }

    } 

    catch (IOException e) {
        e.printStackTrace();
    } 

    finally {
        try {
            if (br != null)br.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

किसी विशेष स्थान के लिए

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

public class BufferedReaderExample {

    public static void main(String[] args) {

        BufferedReader br = null;

        try {

            String sCurrentLine;

            br = new BufferedReader(new FileReader("C:\\lab13.txt"));

            while ((sCurrentLine = br.readLine()) != null) {
                System.out.println(sCurrentLine);
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (br != null)br.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }

    }
}
0
जोड़ा

http://docs.oracle.com/javase/tutorial/essential/environment /cmdLineArgs.html

प्रोग्राम नाम के बाद आप कमांड लाइन में जो सामान जोड़ते हैं, वह तर्क सरणी में जाता है, इसलिए:

Scanner inFile= new Scanner(new File(args[0]));
0
जोड़ा