在运行的时候传递参数

有人发帖问下面的程序为什么运行会出错?

The method cypher(InputStream, OutputStream) in the type 
MyEncoderText is not applicable for the arguments (FileInputStream, 
FileOutputStream)
package package1;

import java.io.*;

public class MyEncoderText {
    public static void main(String[] args) throws Exception {
        String path0 = args[0];
        String path1 = args[1];
        FileInputStream in = new FileInputStream(path0);
        FileOutputStream out = new FileOutputStream(path1);
        cypher(in, out); 
        System.out.println("结束");
        out.close();
    }

    private static void cypher(InputStream inp, OutputStream oup)
            throws Exception {
        int len = -1;
        System.out.println("0:  " + len);
        while ((len = inp.read()) != -1) {
            System.out.println("1: " + len);
            oup.write(len);// ^ 102 ^ 91
            System.out.println("2: " + len);
        }
        System.out.println("3: " + oup);
    }
}

然后,我试了一下,好像没有问题啊?

有人建议他把cypher方法的参数改为(FileInputStream inp, FileOutputStream oup),

就这样结束了这个提问。无聊。

还有那个oup.write(len^ 102 ^ 91);

我开始以为是类似二进制移位这样提高效率之类的操作,

结果根本不行!把它注释掉才能真正地执行复制文件的操作,浪费我时间。

不过这个程序倒是提醒了我关于“在运行的时候传递参数”的问题,

写了一个小程序:

public class TestArgs {

    public static void main(String[] args) {
        String Arg1 = args[0];
        String Arg2 = args[1];
        String Arg3 = args[2];
        
        System.out.println(Arg1);
        System.out.println(Arg2);
        System.out.println(Arg3);
    }
}

在cmd小黑窗或者Eclipse中,只要以空格隔开传递的参数,

就可以将参数传递给程序。

例如:java TestArgs A B C 这样。

Eclipse就是Run configurations……窗口传,不截图了。

时间: 2024-10-14 19:07:08

在运行的时候传递参数的相关文章

请写出并说明如何在命令行下运行PHP脚本(写出两种方式)同时向PHP脚本传递参数

方法一: <?php if ($argc > 1){ print_r($argv); } ?> php.exe test.php welcome Ricky Feng 方法二: 还有一种这样的,提示用户输入,然后获取输入的参数.有点像C语言 <?php fwrite(STDOUT, "Enter your name: "); $name = trim(fgets(STDIN)); fwrite(STDOUT, "Hello, $name!")

如何在命令行下运行PHP脚本(写出两种方式)同时向PHP脚本传递参数?

腾讯 window下,假设php安装目录为c:\program files\php5\,那么使用命令窗口进入到该路径下,敲入php hello.php回车,则会执行当前路径下的hello.php文件, 如果要指向其他路径下php文件,可以在php 路径/hello.php ,这种形式称为CLI模式,我们平时通过浏览器看到的那种成为CGI模式,至于传递参数,php文件在cli模式下,直接通过在文件名称后面接参数,多个参数中间用空格隔开,在php文件里面是通过两个变量来获取参数的,一个是$argv,

转:Web页面通过URL地址传递参数常见问题及检测方法

Web页面即我们在浏览器中所看到的网页,在Web应用程序中,其页面往往需要进行动态切换和数据交互,页面间的数据常规传递方法有多种,本文主要介绍Web页面处理程序中常见的URL地址参数传递方法,包括概述其实现原理.特点和常见问题,最后介绍检测该方式常见应用问题的测试思路和方法. 1.web页面的概念 Web是internet上一个非常重要的资源信息网,产生于20世纪90年代初,它遵循超文本传输协议,以超文本或超媒介的形式传送各种各样的信息,为用户提供了一个具有友好的图形化界面--Web页面,以便用

工作随笔——Java调用Groovy类的方法、传递参数和获取返回值

接触Groovy也快一年了,一直在尝试怎么将Groovy引用到日常工作中来.最近在做一个功能的时候,花了点时间重新看了下Java怎么调用Groovy的方法.传递参数和获取返回值. 示例Groovy代码如下: # TestGroovy.groovy 定义testC方法,传入3个参数,返回处理后的数据 def testC(int numA, int numB, int numC) { "传入参数:" + numA + numB + numC + "计算之和为:" + (

Linux学习笔记 -- 为 Shell 传递参数

我们可以在执行 Shell 脚本时,可以向脚本传递参数.脚本内获取参数的格式为:$n.(n 代表一个数字,0为所执行的shell脚本名称,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……) 举例说明 我们先编写一个脚本,名字为test.sh,她的内容如下: #!/bin/bash echo "Shell 输出脚本名称及参数"; echo "执行的脚本名:$0"; echo "第一个参数为:$1"; echo "第二个

ShellExecute传递参数外引程序

这样的程序分为两个部分,一个是引用的程序,一个是被引用的程序. 核心的东西也比较简单 引用他人,需要传递参数 CString exePath; CString paramPath; GetDlgItemText(IDC_EXEPATH,exePath); GetDlgItemText(IDC_PARAMS,paramPath); ShellExecute(this->m_hWnd,"open",exePath,paramPath,"",SW_SHOW ); 被

java eclipse 中给args 传递参数

我们都知道java源文件运行时通过main主函数为入口启动的,在cmd命令窗口我们知道怎么传递参数,但是在编译器里边就不知道怎么传递参数了, 在这里有一个简单的例子: public class Test{ public static void main(String[] args){ //这里的args就是传入的参数数组. }}在cmd中 java Test a b c 但是在eclipse中的话,对参数的传递就没有什么头绪了,这里可以在运行 选中项目主类右键在run as里选中 run con

Android解惑 - 为什么要用Fragment.setArguments(Bundle bundle)来传递参数(转)

Fragment在Android3.0开始提供,并且在兼容包中也提供了Fragment特性的支持.Fragment的推出让我们编写和管理用户界面更快捷更方便了. 但当我们实例化自定义Fragment时,为什么官方推荐Fragment.setArguments(Bundle bundle)这种方式来传递参数,而不推荐通过构造方法直接来传递参数呢?为了弄清这个问题,我们可以做一个测试,分别测试下这两种方式的不同 首先,我们来测试下通过构造方法传递参数的情况 public class FramentT

17_Android中Broadcast详解(有序广播,无序广播)最终广播,Bundle传递参数,传递参数的时候指定权限

?? 1  Broadcast是Android中的四大组件之一,他的用途很大,比如系统的一些广播:电量低.开机.锁屏等一些操作都会发送一个广播. 2  广播被分为两种不同的类型:"普通广播(Normalbroadcasts)"和"有序广播(Ordered broadcasts)".普通广播是完全异步的,可以在同一时刻(逻辑上)被所有广播接收者接收到,消息传递的效率比较高,但缺点是:接收者不能将处理结果传递给下一个接收者,并且无法终止广播Intent的传播:然后有序广