A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈斌 中级黑马   /  2012-2-28 20:58  /  2720 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

学习java有一段日子的、、可是mian函数中String[] args  中的args数组是干嘛用还真没搞懂。

7 个回复

倒序浏览
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
复制代码

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
刘基军 发表于 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呢??

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
File file = new File(args[0]); //这边就是通过读取你输入的值作为路径,创建一个新 File 实例。
所以你就该在编译时:java PicClient d:\ (d:\是举例写的,根据你实际需求输入即可)
回复 使用道具 举报
这个是运行程序前给它的参数。。

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

比如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规定就行

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
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

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
代臣 黑马帝 2012-2-29 15:13:29
7#
args原本是arguments(中文意思是参数,argument的复数形式),简写为args,
它是String类型的数组,因为定义格式就是String[] args,而就像定义数组一样,数组名可以随便定义。
希望对你有用。
回复 使用道具 举报
String[] args  中的args数组是传递给main方法的参数,以供你后续使用,你可以在main方法中打印。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马