Java 如何将arraylist逐行附加到txt文件中?
我正在尝试将arraylist的一项添加到txt文件中,但我需要逐行添加。txt文件包含名称,我正在尝试添加它们的用户名,因此我需要逐行添加每个用户。 这是原始txt文件:Java 如何将arraylist逐行附加到txt文件中?,java,file,arraylist,Java,File,Arraylist,我正在尝试将arraylist的一项添加到txt文件中,但我需要逐行添加。txt文件包含名称,我正在尝试添加它们的用户名,因此我需要逐行添加每个用户。 这是原始txt文件: Smith, Will Lothbrok, Ragnar Skywalker, Anakin Ronaldo, Cristiano Messi, Lionel 这是我正在使用的方法: public static void addUsers(int maxLines, List<Users> users) th
Smith, Will
Lothbrok, Ragnar
Skywalker, Anakin
Ronaldo, Cristiano
Messi, Lionel
这是我正在使用的方法:
public static void addUsers(int maxLines, List<Users> users) throws IOException {
File f = new File("Users.txt");
FileOutputStream fos = new FileOutputStream(f, true);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
//maxLines is just a count of the lines from the text file so i can put the limit of this loop.
for (int i = 0; i < maxLines; i++) {
bw.write(" > " + users.get(i).getUsername() );
bw.newLine();
}
bw.close();
}
但我需要的是:
Smith, Will > Will.Smith3
Lothbrok, Ragnar > Ragnar.Lothbrok74
Skywalker, Anakin > Anakin.Skywalker30
Ronaldo, Cristiano > Cristiano.Ronaldo32
Messi, Lionel > Lionel.Messi2
我一直在尝试不同的方法,比如在BufferedWriter方法中加入append not write,但它仍然给出相同的结果。我怎样才能做得更好
列表中。读取完成后,将此列表的内容写入文件
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
class User {
private String username;
public User(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
}
public class Main {
public static void main(String[] args) {
// Test
List<User> users = List.of(new User("Will.Smith3"), new User("Ragnar.Lothbrok74"),
new User("Anakin.Skywalker30"), new User("Cristiano.Ronaldo32"), new User("Lionel.Messi2"));
try {
addUsers(5, users);
} catch (IOException e) {
e.printStackTrace();
}
}
static void addUsers(int maxLines, List<User> users) throws IOException {
// List to store lines from the file plus corresponding username
List<String> list = new ArrayList<>();
try (BufferedReader reader = new BufferedReader(new FileReader(new File("Users.txt")))) {
String currentLine;
int line = 0;
while ((currentLine = reader.readLine()) != null && line < users.size()) {
list.add(line, currentLine + " > " + users.get(line).getUsername() + System.lineSeparator());
line++;
}
}
// Write the content of the list into the file
try (BufferedWriter writer = new BufferedWriter(new FileWriter(new File("Users.txt")))) {
for (String s : list) {
writer.write(s);
}
}
}
}
导入java.io.BufferedReader;
导入java.io.BufferedWriter;
导入java.io.File;
导入java.io.FileReader;
导入java.io.FileWriter;
导入java.io.IOException;
导入java.util.ArrayList;
导入java.util.List;
类用户{
私有字符串用户名;
公共用户(字符串用户名){
this.username=用户名;
}
公共字符串getUsername(){
返回用户名;
}
}
公共班机{
公共静态void main(字符串[]args){
//试验
List users=List.of(新用户(“Will.Smith3”)、新用户(“Ragnar.Lothbrok74”),
新用户(“Anakin.Skywalker30”)、新用户(“Cristiano.Ronaldo32”)、新用户(“Lionel.Messi2”);
试一试{
添加用户(5个,用户);
}捕获(IOE异常){
e、 printStackTrace();
}
}
静态void addUsers(int-maxLines,List-users)引发IOException{
//列表以存储文件中的行以及相应的用户名
列表=新的ArrayList();
try(BufferedReader=new BufferedReader(new FileReader(新文件(“Users.txt”))){
串电流线;
内线=0;
while((currentLine=reader.readLine())!=null&&line”+users.get(line.getUsername()+System.lineSeparator());
line++;
}
}
//将列表的内容写入文件
try(BufferedWriter=new BufferedWriter(new FileWriter(新文件(“Users.txt”))){
用于(字符串s:列表){
作者:写;
}
}
}
}
列表中。读取完成后,将此列表的内容写入文件
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
class User {
private String username;
public User(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
}
public class Main {
public static void main(String[] args) {
// Test
List<User> users = List.of(new User("Will.Smith3"), new User("Ragnar.Lothbrok74"),
new User("Anakin.Skywalker30"), new User("Cristiano.Ronaldo32"), new User("Lionel.Messi2"));
try {
addUsers(5, users);
} catch (IOException e) {
e.printStackTrace();
}
}
static void addUsers(int maxLines, List<User> users) throws IOException {
// List to store lines from the file plus corresponding username
List<String> list = new ArrayList<>();
try (BufferedReader reader = new BufferedReader(new FileReader(new File("Users.txt")))) {
String currentLine;
int line = 0;
while ((currentLine = reader.readLine()) != null && line < users.size()) {
list.add(line, currentLine + " > " + users.get(line).getUsername() + System.lineSeparator());
line++;
}
}
// Write the content of the list into the file
try (BufferedWriter writer = new BufferedWriter(new FileWriter(new File("Users.txt")))) {
for (String s : list) {
writer.write(s);
}
}
}
}
导入java.io.BufferedReader;
导入java.io.BufferedWriter;
导入java.io.File;
导入java.io.FileReader;
导入java.io.FileWriter;
导入java.io.IOException;
导入java.util.ArrayList;
导入java.util.List;
类用户{
私有字符串用户名;
公共用户(字符串用户名){
this.username=用户名;
}
公共字符串getUsername(){
返回用户名;
}
}
公共班机{
公共静态void main(字符串[]args){
//试验
List users=List.of(新用户(“Will.Smith3”)、新用户(“Ragnar.Lothbrok74”),
新用户(“Anakin.Skywalker30”)、新用户(“Cristiano.Ronaldo32”)、新用户(“Lionel.Messi2”);
试一试{
添加用户(5个,用户);
}捕获(IOE异常){
e、 printStackTrace();
}
}
静态void addUsers(int-maxLines,List-users)引发IOException{
//列表以存储文件中的行以及相应的用户名
列表=新的ArrayList();
try(BufferedReader=new BufferedReader(new FileReader(新文件(“Users.txt”))){
串电流线;
内线=0;
while((currentLine=reader.readLine())!=null&&line”+users.get(line.getUsername()+System.lineSeparator());
line++;
}
}
//将列表的内容写入文件
try(BufferedWriter=new BufferedWriter(new FileWriter(新文件(“Users.txt”))){
用于(字符串s:列表){
作者:写;
}
}
}
}
将文件逐行读取到arraylist,将需要添加的内容添加到每个字符串中,然后保存文件。逐行读取arraylist中的文件,将需要添加的内容添加到每个字符串中,然后保存文件。谢谢非常好:)不客气,谢谢!它工作得很好:)非常欢迎你。