如何提取数组中的一个值,并转为string类型,赋值给一个变量

metoo03 2009-09-07 08:07:09
本人在学习java的过程中碰到的问题,虽然有些幼稚,
但还是希望有好心人帮忙解答一下。

import java.io.*;

public class Teststream{
public static void main(String arg[]){
String b;int c=0;
for(int i=0;i<arg.length;i++){
b=arg[i];
}
//上面这段代码是想把命令行中输入的“文件地址参数”存入b这个字符串变量
//但老是出现“b可能为初始化错误”
FileInputStream in=null;
try{
in= new FileInputStream(b);
}catch(FileNotFoundException e){
System.out.println("文件未找到");
System.exit(-1);
}

try{
int num=0;
while((c=in.read())!=-1){
System.out.print((char)c);
num++;
}
in.close();
System.out.println();
System.out.print("共打印了"+num+"个数。");
}catch(IOException e){
System.out.println("读取文件出错");
System.exit(0);
}
}
}

//这段代码的全部功能是想要实现通过输入绝对地址实现读取任何一个文件
//并打印出来的功能
...全文
663 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxxzhy 2009-09-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tecresearch 的回复:]
对于出现的问题,可能是你在运行程序时忘记给程序传参就直接运行,这样b就没有值或为空字符串
同时,即便你给程序传入了参数,也不可能实现读取任何一个文件,因为你的for循环出来后只能得到最后一个参数,后一个总是会覆盖前一个,可以考虑将后面的程序也移到循环内部,这样就可能读取所有输入的参数文件。
[/Quote]
楼主这个不是运行时错误,是编译时错误.因为他只声明了b这个变量,但在运行时有可能得不到初始化(当arg.leng<1),所以编译器直接就不通过了.
gesanri 2009-09-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tecresearch 的回复:]
对于出现的问题,可能是你在运行程序时忘记给程序传参就直接运行,这样b就没有值或为空字符串
同时,即便你给程序传入了参数,也不可能实现读取任何一个文件,因为你的for循环出来后只能得到最后一个参数,后一个总是会覆盖前一个,可以考虑将后面的程序也移到循环内部,这样就可能读取所有输入的参数文件。
[/Quote]
他只用输入路径,也就是说字符串数组只有一个变量,所以循环只会执行一次,不存在你说的后一个覆盖前一个的问题
gesanri 2009-09-07
  • 打赏
  • 举报
回复
嗯,把b初始化,完后点右键选择run,再选择(x)=Arguments,在其中的Program arguments中输入你要传进去的路径
tecresearch 2009-09-07
  • 打赏
  • 举报
回复
对于出现的问题,可能是你在运行程序时忘记给程序传参就直接运行,这样b就没有值或为空字符串
同时,即便你给程序传入了参数,也不可能实现读取任何一个文件,因为你的for循环出来后只能得到最后一个参数,后一个总是会覆盖前一个,可以考虑将后面的程序也移到循环内部,这样就可能读取所有输入的参数文件。
小马迷途 2009-09-07
  • 打赏
  • 举报
回复
初始化b就可以了

String b = null;
dajiadebeibei9 2009-09-07
  • 打赏
  • 举报
回复
试试
String b=null;
for(int i=0;i <arg.length;i++){
b=(String)arg[i];
}
a06117028 2009-09-07
  • 打赏
  • 举报
回复
String b="";

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧