我有一个文件(称为"number.txt"),我想用Java读取数组.我该怎样继续这样做呢?它是一个直接的"1维"文件,包含100个数字.
问题是我每次都得到一个例外.显然它找不到它(我确信它拼写正确).查看代码示例时,它不指定文件的整个文件路径,只指定文件本身的名称.如果有必要,我该如何去做呢?
此外,在读取文件时,数组是否会自动包含文件的所有行,或者我是否必须创建一个循环,将每行复制到相应的下标i?
我听说过BufferedReader类,它的目的是什么,以及它如何与读取输入相结合?
我实际上有几个问题.
我有一个类Dog与以下实例字段:
private int id;
private int id_mother;
private int id_father;
private String name="";
private String owner="";
private String bDate="";
Run Code Online (Sandbox Code Playgroud)
我还有一个类Archive,它可以实例化Dog并将Dog对象放入ArrayList中.
我试图在Archive中编写一个方法,它接受一个整数作为ID并查看ArrayList,并返回包含该ID的对象.
private Dog getDog(int id){
Dog dog = new Dog();
int length=getSize();
int i=0;
dog=al.get(i);
i++;
while(dog.getId()!=id && i<length)
dog=al.get(i);
i++;
if(dog.getId()!=id)
dog=null;
return dog;
}//end getDog
Run Code Online (Sandbox Code Playgroud)
这种方法有两个问题(我使用的其他方法).首先它没有用,我看不出原因.我正在循环(可能)arraylist中的所有对象,因为在循环结束后,检查循环是否完成,因为它用完了要搜索的对象,或者因为它找到了具有给定ID的对象.其次,这似乎是一个非常耗时的过程.有什么方法可以加快速度吗?
File fil = new File("Tall.txt");
FileReader inputFil = new FileReader(fil);
BufferedReader in = new BufferedReader(inputFil);
int [] tall = new int [100];
String s =in.readLine();
while(s!=null)
{
int i = 0;
tall[i] = Integer.parseInt(s); //this is line 19
System.out.println(tall[i]);
s = in.readLine();
}
in.close();
Run Code Online (Sandbox Code Playgroud)
我试图使用文件"Tall.txt"将包含在其中的整数写入名为"tall"的数组中.它在某种程度上这样做,但是当我运行它时,它会抛出以下异常(:
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at BinarySok.main(BinarySok.java:19)
Run Code Online (Sandbox Code Playgroud)
为什么要这样做,我该如何删除它?在我看来,我将文件作为字符串读取,然后将其转换为int,这不是非法的.
我刚刚通过Visual Studio 2008学习C#?
我想知道数据库,数据集和绑定源之间究竟有什么关联?
同样,表适配器的功能是什么?