java将数据从文件写入数组
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.List;
public class RF{
public static void main(String[] args) throws IOException{
int count = 0;
FileReader fr = new FileReader("file.txt");
BufferedReader br = new BufferedReader(fr);
String line;
while ((line = br.readLine()) != null){
//System.out.println(br.readLine());
count++;
}
String []readArray = new String[count];
for(int i = 0; i < readArray.length; i++){
readArray[i] = br.readLine();
System.out.println(readArray[i]);
}
}
}
我无法将文本文件中的数据写入新数组,该数组永远不会填充。我只需要将这些数据写入一个数组,然后删除一些项目并生成一个新的文本文档
# 1 楼答案
其他人已经解释了你的代码出了什么问题,我只会给出一个不同的选择
如果您使用的是Java 7,并且您的文件不是太大,那么您可以直接将文件的所有行加载到
List
中# 2 楼答案
您已经将文件读到了最后,需要关闭并重新打开它,以便将读取器再次定位到文件的开头
或者,不要像@SotiriosDelimanolis在评论中建议的那样使用数组,而是使用列表。这不需要预先知道长度,只需添加每一行即可
# 3 楼答案
问题是,当你数完线
你没有更多的台词要读
在填充数组之前,需要重新开始读取文件(重新创建
BufferedReader
),或者使用其他方法,比如在计数时使用列表来保留行# 4 楼答案
您所做的是:您正在完全读取文件一次,然后使用相同的
BufferedReader
再次读取它(在第二个循环中)。因此,在第二个循环中,由于已经到达文件的末尾,所以什么也得不到因此,在第一个循环之后,关闭BufferedReader并进行另一个循环。 或者像这样做:
现在,您可以在此列表中添加/删除元素并写入
# 5 楼答案
它将读取您的文件,直到结束,而不会再次放入数据
在这个循环中再次调用readLine()时
br中没有任何内容可供您阅读,因为您已经在文件末尾
# 6 楼答案
以下是您想要的代码:
请注意,我使用的不是字符串数组,而是
LinkedList