如何在JAVA列表中存储文本文件的第一行
我不知道我的代码出了什么问题,当我使用如何在JAVA列表中存储文本文件的第一行,java,Java,我不知道我的代码出了什么问题,当我使用list.get(0)时,它应该显示我文本文件的第一行,但我总是得到第二行 String everything; ArrayList<String> list = new ArrayList<String>(); try(BufferedReader br = new BufferedReader(new FileReader("lol/new.txt"))) { StringBuilder sb = new StringB
list.get(0)
时,它应该显示我文本文件的第一行,但我总是得到第二行
String everything;
ArrayList<String> list = new ArrayList<String>();
try(BufferedReader br = new BufferedReader(new FileReader("lol/new.txt"))) {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
list.add(line);
}
everything = sb.toString(); // maybe I'll need this :D
}
当我做一个简单的System.out.println(list.get(0))代码>我得到的是55N
而不是1010
我做错了什么 试试这个
String everything;
ArrayList<String> list = new ArrayList<String>();
try(BufferedReader br = new BufferedReader(new FileReader("lol/new.txt"))) {
StringBuilder sb = new StringBuilder();
String line = br.readLine(); // Read first line
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
list.add(line); // Line order has changed!
line = br.readLine(); // Read next line
}
everything = sb.toString(); // maybe I'll need this :D
}
字符串所有内容;
ArrayList=新建ArrayList();
try(BufferedReader br=newbufferedreader(newfilereader(“lol/new.txt”)){
StringBuilder sb=新的StringBuilder();
String line=br.readLine();//读取第一行
while(行!=null){
某人附加(行);
sb.append(System.lineSeparator());
list.add(行);//行顺序已更改!
line=br.readLine();//读取下一行
}
everything=sb.toString();//也许我需要这个:D
}
试试这个
String everything;
ArrayList<String> list = new ArrayList<String>();
try(BufferedReader br = new BufferedReader(new FileReader("lol/new.txt"))) {
StringBuilder sb = new StringBuilder();
String line = br.readLine(); // Read first line
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
list.add(line); // Line order has changed!
line = br.readLine(); // Read next line
}
everything = sb.toString(); // maybe I'll need this :D
}
字符串所有内容;
ArrayList=新建ArrayList();
try(BufferedReader br=newbufferedreader(newfilereader(“lol/new.txt”)){
StringBuilder sb=新的StringBuilder();
String line=br.readLine();//读取第一行
while(行!=null){
某人附加(行);
sb.append(System.lineSeparator());
list.add(行);//行顺序已更改!
line=br.readLine();//读取下一行
}
everything=sb.toString();//也许我需要这个:D
}
请参考我对代码的评论
String everything;
ArrayList<String> list = new ArrayList<String>();
try(BufferedReader br = new BufferedReader(new FileReader("lol/new.txt"))) {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
//up to this point variable line has the line number 1
//first line is overwritten with line number 2
line = br.readLine();
//when you add the line to your ArrayList, line variable contains the second line
list.add(line);
}
everything = sb.toString();
}
字符串所有内容;
ArrayList=新建ArrayList();
try(BufferedReader br=newbufferedreader(newfilereader(“lol/new.txt”)){
StringBuilder sb=新的StringBuilder();
String line=br.readLine();
while(行!=null){
某人附加(行);
sb.append(System.lineSeparator());
//到目前为止,变量行的行号为1
//第一行被行号2覆盖
line=br.readLine();
//将该行添加到ArrayList时,line变量包含第二行
列表。添加(行);
}
一切=某人做某事;
}
请参考我对代码的评论
String everything;
ArrayList<String> list = new ArrayList<String>();
try(BufferedReader br = new BufferedReader(new FileReader("lol/new.txt"))) {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
//up to this point variable line has the line number 1
//first line is overwritten with line number 2
line = br.readLine();
//when you add the line to your ArrayList, line variable contains the second line
list.add(line);
}
everything = sb.toString();
}
字符串所有内容;
ArrayList=新建ArrayList();
try(BufferedReader br=newbufferedreader(newfilereader(“lol/new.txt”)){
StringBuilder sb=新的StringBuilder();
String line=br.readLine();
while(行!=null){
某人附加(行);
sb.append(System.lineSeparator());
//到目前为止,变量行的行号为1
//第一行被行号2覆盖
line=br.readLine();
//将该行添加到ArrayList时,line变量包含第二行
列表。添加(行);
}
一切=某人做某事;
}
检查代码中的注释
String everything;
ArrayList<String> list = new ArrayList<String>();
try(BufferedReader br = new BufferedReader(new FileReader("lol/new.txt"))) {
StringBuilder sb = new StringBuilder();
String line = br.readLine(); // You read first line of file
// which is discarded.
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine(); // You read second, and the rest of lines of file.
// First line is discarded here.
list.add(line); // Add to list.
}
everything = sb.toString(); // maybe I'll need this :D
}
字符串所有内容;
ArrayList=新建ArrayList();
try(BufferedReader br=newbufferedreader(newfilereader(“lol/new.txt”)){
StringBuilder sb=新的StringBuilder();
String line=br.readLine();//读取文件的第一行
//它被丢弃了。
while(行!=null){
某人附加(行);
sb.append(System.lineSeparator());
line=br.readLine();//读取第二行以及文件的其余行。
//第一行在这里被丢弃。
添加(行);//添加到列表。
}
everything=sb.toString();//也许我需要这个:D
}
检查代码中的注释
String everything;
ArrayList<String> list = new ArrayList<String>();
try(BufferedReader br = new BufferedReader(new FileReader("lol/new.txt"))) {
StringBuilder sb = new StringBuilder();
String line = br.readLine(); // You read first line of file
// which is discarded.
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine(); // You read second, and the rest of lines of file.
// First line is discarded here.
list.add(line); // Add to list.
}
everything = sb.toString(); // maybe I'll need this :D
}
字符串所有内容;
ArrayList=新建ArrayList();
try(BufferedReader br=newbufferedreader(newfilereader(“lol/new.txt”)){
StringBuilder sb=新的StringBuilder();
String line=br.readLine();//读取文件的第一行
//它被丢弃了。
while(行!=null){
某人附加(行);
sb.append(System.lineSeparator());
line=br.readLine();//读取第二行以及文件的其余行。
//第一行在这里被丢弃。
添加(行);//添加到列表。
}
everything=sb.toString();//也许我需要这个:D
}
问题在于,在循环之外,当你已经拉出第一行时,在循环内部,当循环迭代时,你永远不会使用你拉出的第一行
尝试在while
循环的末尾拉下一行,这样也可以使用while循环前面拉的行
:
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
list.add(line);
line = br.readLine();
}
问题是,在while
循环之外,您已经拉上了第一行,而在while
循环的迭代内部,您从未使用您拉的第一行
尝试在while
循环的末尾拉下一行,这样也可以使用while循环前面拉的行
:
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
list.add(line);
line = br.readLine();
}
您正在重复读取文件String line=br.readLine()代码>,后跟line=br.readLine()
,使用while((line=br.readLine)!=null){…
而不是您正在双击文件String line=br.readLine();
,后跟line=br.readLine();
,使用while((line=br.readLine)!=null){…
instead您所说的行号更改是什么意思?
…ArrayList保存插入顺序,因此这不是一个issue@Manoj顺序改变了。现在,先把它添加到列表中,然后读下一行。你应该指出他从文本文件中读取第二行来覆盖变量的错误。好的,我看到了……现在你已经完成了太好了!!你所说的更改行号是什么意思?
…ArrayList保存插入顺序以便