老实讲,看来你用java没几天,
将main方法里的vs 定义到class级就行了。
import java.io.*;
import java.util.*;
public class MyReadFile{
Vector vs=new Vector();//现在放在这里
public static void main(String[] args){
//Vector vs=new Vector();原本你是放在这里的
DataInputStream in=new DataInputStream(new BufferedInputStream(new FileInputStream("text.txt")));
String s,s2=new String();
while ((s=in.readLine())!=null)
{s2=s+'\n';
vs.addElement(s2);}
} public MyReadFile(){
while(vs.hasMoreElements())
System.out.println(""+vs.nextElement());
}
}
将main方法里的vs 定义到class级就行了。
import java.io.*;
import java.util.*;
public class MyReadFile{
Vector vs=new Vector();//现在放在这里
public static void main(String[] args){
//Vector vs=new Vector();原本你是放在这里的
DataInputStream in=new DataInputStream(new BufferedInputStream(new FileInputStream("text.txt")));
String s,s2=new String();
while ((s=in.readLine())!=null)
{s2=s+'\n';
vs.addElement(s2);}
} public MyReadFile(){
while(vs.hasMoreElements())
System.out.println(""+vs.nextElement());
}
}
在另一个过程中当然找不到
MyReadFile是另一个method,他不会认识main中的方法变量的。
Vector有hasMoreElements和nextElement两个方法吗?我只要一编译就报错。
我查了api也没有两个方法。
import java.io.*;
import java.util.*;
public class MyReadFile{
Vector vs=new Vector();
public static void main(String[] args){
DataInputStream in=new DataInputStream(new BufferedInputStream(new FileInputStream("text.txt")));
String s,s2=new String();
while ((s=in.readLine())!=null)
{s2=s+'\n';
vs.addElement(s2);}
} public MyReadFile(){
for (int i=0;i<vs.size();i++)
System.out.println(vs.elementAt(i)); }
}
可是还是报错误如下:MyReadFile.java:10: 在静态上下文中不能引用非静态变量 vs
vs.addElement(s2);}
^
注意:
MyReadFile.java 使用或覆盖一个不鼓励使用的API。
注意:
使用-deprecation重新编译,以得到详细信息。
1 个错误
哪为老哥把我改一下啊分不够再加啊~~~
在main函数中加上:
MyReadFile read=new MyReadFile();
read.vs.addElement(s2);
希望能帮到你
另外,例外在这里必须捕获。
try {
Vector vs=new Vector();
DataInputStream in=new DataInputStream(new BufferedInputStream(new FileInputStream("text.txt")));
String s,s2=new String();
while ((s=in.readLine())!=null) {
s2=s+'\n';
vs.addElement(s2);
}
for (int i=0;i<vs.size();i++)
System.out.println(vs.elementAt(i));
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
}这回每问题了。
public class MyReadFile{
static Vector vs=new Vector();
public static void main(String[] args){
try{
DataInputStream in=new DataInputStream(new BufferedInputStream(new FileInputStream("text.txt")));
String s,s2=new String();
while ((s=in.readLine())!=null)
{
s2=s+'\n';
vs.addElement(s2);}
}catch(Exception e)
{
e.printStackTrace();
}
MyReadFile readFile = new MyReadFile();
}
public MyReadFile(){
for (int i=0;i<vs.size();i++)
System.out.println(vs.elementAt(i)); }
}
我把你的程序编译了一下抱错误啊~~
错误为:
MyReadFile.java:6: 不能解析符号
符号:类 DataInputStream
位置:类 in MyReadFile
DataInputStream in=new DataInputStream(new BufferedInputStream(new FileInput
Stream("text.txt")));
^
MyReadFile.java:6: 不能解析符号
符号:类 DataInputStream
位置:类 in MyReadFile
DataInputStream in=new DataInputStream(new BufferedInputStream(new FileInput
Stream("text.txt")));
^
MyReadFile.java:6: 不能解析符号
符号:类 BufferedInputStream
位置:类 in MyReadFile
DataInputStream in=new DataInputStream(new BufferedInputStream(new FileInput
Stream("text.txt")));
^
MyReadFile.java:6: 不能解析符号
符号:类 FileInputStream
位置:类 in MyReadFile
DataInputStream in=new DataInputStream(new BufferedInputStream(new FileInput
Stream("text.txt")));
^
4 个错误
是怎么回事?是不是text.txt文件的位置不对?我把它放到了和MyReadFile.java的同一个目录下啊~~
我刚学JAVA没几天、`有好多东西搞不清楚啊~~
后加上import java.io.*;我只能说,您要学的实在太多。