Java:将文件名和字符串传递给命令行

替补

我有一个小的Java程序,试图在命令行中传递文本文件和一个或多个用空格分隔的字符串。在文本文件中,我有一个软件包列表,如下所示:

gui -> awtui swingui swingui -> runner extensions textui -> runner
framework awtui -> runner runner -> framework extensions -> framework

现在在我的java中,我想通过在命令行中传递文本文件和package ame来列出每个软件包及其依赖项,如下所示:

$ java PackageList sample.txt gui swingui

当我按Enter键时,我想在控制台上列出每个程序包,如下所示:

gui -> awtui swingui
swingui -> runner extensions

如您所见,如果其他软件包未在命令行中作为参数传递,则它们不应出现在输出中。

这是我的Java代码,当前希望打印文件的所有内容,而不管文件名后面的命令行参数如何:

public class PackageList {

    public static void main(String[] args) {

        File inputFile = null;
        if (args.length > 0) {
            inputFile = new File(args[0]);
        } else {
            System.err.println("Invalid arguments count:" + args.length);
            System.exit(1);
        }

        BufferedReader br = null;

        try {
            String sCurrentLine;
            br = new BufferedReader(new FileReader(inputFile));
            while ((sCurrentLine = br.readLine()) != null) {
                System.out.println(sCurrentLine);
            }

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

    }
}
疯狂的Java学习者

检查以下代码和注释:

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

public class PackageList {

    public static void main(String[] args) {

        File inputFile = null;
        if (args.length > 0) {
            inputFile = new File(args[0]);
        } else {
            System.err.println("Invalid arguments count:" + args.length);
            System.exit(1);
        }

        BufferedReader br = null;

        try {
            String sCurrentLine;
            br = new BufferedReader(new FileReader(inputFile));
            for(int i=1; i < args.length;i++){  // For loop to  check - args[0] is file name so i = 1 
                boolean isDependencyExist = false; // check dependency
                while ((sCurrentLine = br.readLine()) != null) {
                    if(sCurrentLine.startsWith(args[i])){ // If file line starts with arg print
                        System.out.println(sCurrentLine);
                        isDependencyExist = true;
                        break;
                    }
                }
            if(!isDependencyExist){
                System.out.println(args[i] + " ->");
            }
            }

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

    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过命令行将文件名作为字符串传递给 Maple

来自分类Dev

UNIX命令行...如何grep和仅显示包含字符串的文件名?

来自分类Dev

无法将两个命令行参数即文件名传递给函数

来自分类Dev

将字符串命令行参数传递给特定Linux命令的bash脚本

来自分类Dev

Python将多个字符串传递给单个命令行参数

来自分类Dev

如何使用OptionParser将空字符串传递给命令行

来自分类Dev

将星号传递给命令行程序会使文件名出现在argv中

来自分类Dev

字符串替换 *./*: 什么都不做,使用从命令行传递给批处理文件的变量

来自分类Dev

如何确定哪个字符串子进程传递给命令行?

来自分类Dev

如何从命令行将字符串作为参数传递给Node?

来自分类Dev

在C中将命令行字符串lpszCmdLine传递给WM_CREATE

来自分类Dev

如何从命令行将字符串作为参数传递给Node?

来自分类Dev

环境变量中的带引号的字符串传递给命令行上的程序

来自分类Dev

如何将XML文件内容作为命令行参数传递给Java命令?

来自分类Dev

如何将XML文件内容作为命令行参数传递给Java命令?

来自分类Dev

通过命令行传递JSON字符串

来自分类Dev

如何将包含空格的文件名作为参数传递给命令行程序?

来自分类Dev

如何将包含空格的文件名作为参数传递给命令行程序?

来自分类Dev

获取命令行的文件名

来自分类Dev

从UNIX.linux bash文件中提取字符。无法通过命令行传递参数(文件名)

来自分类Dev

如何使用python将json字符串作为命令行参数传递

来自分类Dev

将生成的空字符串作为命令行参数传递

来自分类Dev

在python 2.7.12中传递命令行参数时将变量附加为字符串

来自分类Dev

我可以将整个字符串作为一个命令行参数传递给C中的argv吗?

来自分类Dev

如何将提供给 bash 脚本的所有命令行参数(包括字符串参数)按原样传递给子进程?

来自分类Dev

如何在运行时将命令行参数(字符串数组类型)传递给 servlet init 方法

来自分类Dev

将命令行字符串解析为Golang中的标志和参数

来自分类Dev

在命令行工具中解码Java字符串

来自分类Dev

如何在Windows命令行的文件名和批处理脚本中使用日语字符?

Related 相关文章

  1. 1

    通过命令行将文件名作为字符串传递给 Maple

  2. 2

    UNIX命令行...如何grep和仅显示包含字符串的文件名?

  3. 3

    无法将两个命令行参数即文件名传递给函数

  4. 4

    将字符串命令行参数传递给特定Linux命令的bash脚本

  5. 5

    Python将多个字符串传递给单个命令行参数

  6. 6

    如何使用OptionParser将空字符串传递给命令行

  7. 7

    将星号传递给命令行程序会使文件名出现在argv中

  8. 8

    字符串替换 *./*: 什么都不做,使用从命令行传递给批处理文件的变量

  9. 9

    如何确定哪个字符串子进程传递给命令行?

  10. 10

    如何从命令行将字符串作为参数传递给Node?

  11. 11

    在C中将命令行字符串lpszCmdLine传递给WM_CREATE

  12. 12

    如何从命令行将字符串作为参数传递给Node?

  13. 13

    环境变量中的带引号的字符串传递给命令行上的程序

  14. 14

    如何将XML文件内容作为命令行参数传递给Java命令?

  15. 15

    如何将XML文件内容作为命令行参数传递给Java命令?

  16. 16

    通过命令行传递JSON字符串

  17. 17

    如何将包含空格的文件名作为参数传递给命令行程序?

  18. 18

    如何将包含空格的文件名作为参数传递给命令行程序?

  19. 19

    获取命令行的文件名

  20. 20

    从UNIX.linux bash文件中提取字符。无法通过命令行传递参数(文件名)

  21. 21

    如何使用python将json字符串作为命令行参数传递

  22. 22

    将生成的空字符串作为命令行参数传递

  23. 23

    在python 2.7.12中传递命令行参数时将变量附加为字符串

  24. 24

    我可以将整个字符串作为一个命令行参数传递给C中的argv吗?

  25. 25

    如何将提供给 bash 脚本的所有命令行参数(包括字符串参数)按原样传递给子进程?

  26. 26

    如何在运行时将命令行参数(字符串数组类型)传递给 servlet init 方法

  27. 27

    将命令行字符串解析为Golang中的标志和参数

  28. 28

    在命令行工具中解码Java字符串

  29. 29

    如何在Windows命令行的文件名和批处理脚本中使用日语字符?

热门标签

归档