黑马程序员技术交流社区

标题: mian函数中String[] args [打印本页]

作者: 陈斌    时间: 2012-2-28 20:58
标题: mian函数中String[] args
学习java有一段日子的、、可是mian函数中String[] args  中的args数组是干嘛用还真没搞懂。
作者: 刘基军    时间: 2012-2-28 21:18
args用于接收参数。
用法:
javac TestDemo.java
java TestDemo "hello java" haha
  1. class TestDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 for(String s:args)
  6.                         System.out.println(s);
  7.         }
  8. }
复制代码
输出结果:
  1. hello java
  2. haha
复制代码

作者: 陈斌    时间: 2012-2-28 21:23
刘基军 发表于 2012-2-28 21:18
args用于接收参数。
用法:
javac TestDemo.java

class PicClient{  
24.    public static void main(String[] args) throws Exception{  
25.        if(args.length!=1){  
26.            System.out.println("请选择一个jpg格式的图片");  
27.            return;  
28.        }  
29.        File file = new File(args[0]);  
30.        if(!(file.exists()&&file.isFile())){  
31.            System.out.println("该文件有问题,要么不存在,要不不是文件");  
32.            return;  
33.        }  
34.        if(!file.getName().endsWith(".jpg")){  
35.            System.out.println("图片格式错误,请重新选择jpg");  
36.            return;  
37.        }  
38.        if(file.length()>1024*1024){  
39.            System.out.println("图片过大");  
40.            return;  
41.        }  
42.        Socket s = new Socket("127.0.0.1",10007);  
43.        FileInputStream fis = new FileInputStream(file);  
44.        OutputStream out = s.getOutputStream();  
45.        byte[] buf = new byte[1024];  
46.        int len = 0;  
47.        while((len=fis.read(buf))!=-1){  
48.            out.write(buf,0,len);  
49.        }  
50.        s.shutdownOutput();  
51.        InputStream in = s.getInputStream();  
52.        byte[] bufIn = new byte[1024];  
53.        int num = in.read(bufIn);   
54.        System.out.println(new String(bufIn,0,num));  
55.        fis.close();  
56.        s.close();  
57.    }  
58.}  

那这个程序里的args呢??
作者: 刘基军    时间: 2012-2-28 21:29
File file = new File(args[0]); //这边就是通过读取你输入的值作为路径,创建一个新 File 实例。
所以你就该在编译时:java PicClient d:\ (d:\是举例写的,根据你实际需求输入即可)
作者: 刘峰    时间: 2012-2-28 21:35
这个是运行程序前给它的参数。。

如果你在你程序要用这个参数的话就需要在运行前指定。。

比如java HelloWorld ceshi
那么在HelloWorld的main方法里面 args就是{"ceshi"}
多个的话用空格隔开..
比如java HelloWorld ceshi ceshi1 ceshi2
那么那么在HelloWorld的main方法里面 args就是{"ceshi", "ceshi1", "ceshi2"}
也就是说你假如你的程序是这样的
public class HelloWorld{
    public static void main(String[] args) {
        System.out.println(args[0]);
    }
}
然后你编译
运行的时候这样运行
java HelloWorld hello
那么这个程序就会输出hello
之所以是Stirng 是因为我们只能以字符串的形式输入
名字的话随便取。。只要符合java规定就行
作者: 冯兵兵    时间: 2012-2-28 21:55
args数组是用来接收参数的。例如:
public class ArgsDemo{
    public static void main(String[] args) {
        for(int x = 0;x<args.length;x++)
              System.out.println(args[x]);
    }
}
javac ArgsDemo.java
java ArgsDemo "hello" "world"
输出结果:
hello
world
作者: 代臣    时间: 2012-2-29 15:13
args原本是arguments(中文意思是参数,argument的复数形式),简写为args,
它是String类型的数组,因为定义格式就是String[] args,而就像定义数组一样,数组名可以随便定义。
希望对你有用。
作者: 胡军喜    时间: 2012-3-1 17:21
String[] args  中的args数组是传递给main方法的参数,以供你后续使用,你可以在main方法中打印。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2