奇怪的变量尚未初始化
public void fileunit()
{
File first_file=new File(text.getText());
String file_name;
String file_direction;
String left_name;
String right2_name;
File dfile;
byte bueff[];
file_name=first_file.getName();
file_direction=first_file.getParent();
left_name=file_name.substring(0,file_name.length()-2);
//substring(int beginIndex, int endIndex),读取字符自己定义的开始位置到结束位置,即可以读取某字符串某段的内容
String right_name=file_name.substring(file_name.length()-2);
right2_name=file_name.substring(file_name.length()-1);
//substring(int beginIndex)自己定义开始位置,结束默认
if(right_name.compareTo( "_0 ")==0)
{
dfile=new File(file_direction,left_name);
bueff=new byte[1024];
}
else
{
JOptionPane.showMessageDialog(null, "太小了 ", "太小了 ",2);
}
File files[];
files=new File[200];
int qkl;
for(int i=0; i <200; i++)
{
files[i]=new File(file_direction,left_name+right2_name+Integer.toString(i));
if(files[i].exists())
{
i++;
}
else if(files[i].exists())
{
qkl=i;
break;
}
}
try{
RandomAccessFile filedd=new RandomAccessFile(dfile, "rw ");
RandomAccessFile filesrandom[];
for(int qk=0; qk <=qkl; qk++)
{
filesrandom[qk]=new RandomAccessFile(files[qk], "r ");
for(int kl=0; kl <files[qk].length(); kl++)
{
int a=filesrandom[qk].read(bueff);
... }
编译出现以下问题:
filecute.java:142: 可能尚未初始化变量 dfile
RandomAccessFile filedd=new RandomAccessFile(dfile, "rw ");
^
filecute.java:144: 可能尚未初始化变量 qkl
for(int qk=0; qk <=qkl; qk++)
^
filecute.java:146: 可能尚未初始化变量 filesrandom
filesrandom[qk]=new RandomAccessFile(files[qk], "r ");
^
filecute.java:149: 可能尚未初始化变量 bueff
int a=filesrandom[qk].read(bueff);
为什么会有这些问题 我定义在一些if或for里面就会说变量没有尚未初始化,难道变量在这些里面有局部性...不是全局的,从来没有遇到啊 感觉奇怪
------解决方案--------------------如果false就没有执行
{
dfile=new File(file_direction,left_name);
bueff=new byte[1024];
}
了吧
------解决方案--------------------建议LZ全部在声明的时候进行初始化
------解决方案--------------------