Reputation: 99
I need to read f_name,l_name, username, password from .txt file and save these information in different strings.
Here is code that i found for read line by line:
import java.io.*;
public class Users {
public static void main(String[] args) {
try {
File file = new File("users.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
StringBuffer stringBuffer = new StringBuffer();
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuffer.append(line);
stringBuffer.append("\n");
}
fileReader.close();
System.out.println("Contents of file:");
System.out.println(stringBuffer.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
but I don't know how to every first name save in variable f_name, every last name in variable l_name,... Every of this f_name, l_name, username, password are in new line in file.
Example of file with datas:
John
Johnson
johny
1234
David
Davidson
davy
1234
...
Upvotes: 0
Views: 99
Reputation: 5363
Try this:
Add this line:
private BufferedReader innerReader;
And use this method:
private List<String> loadFile(Reader reader)
throws IllegalArgumentException, IOException{
List<String> fileList = new ArrayList<String>();
if(reader == null)
{
throw new IllegalArgumentException("Reader non valido");
}
String line;
innerReader = new BufferedReader(reader);
try
{
while((line = innerReader.readLine()) != null)
{
if (line == null || line.trim().isEmpty())
throw new IllegalArgumentException(
"Line Empty");
fileList.add(line);
}
} catch (IOException e) {
throw new IOException(e);
}
return fileList;
}
Then in main:
MyClass myClass = new MyClass();
List<String> myList = new ArrayList<String>();
try {
myList = myClass.loadFile(new FileReader("YourFile.txt"));
} catch (IllegalArgumentException | IOException e) {
e.printStackTrace();
}
for(String s : myList)
{
System.out.println(s);
}
try {
myClass.innerReader.close();
} catch (IOException e) {
e.printStackTrace();
}
Output:
John
Johnson
johny
1234
David
Davidson
davy
1234
Upvotes: 0
Reputation: 533492
Every of this f_name, l_name, username, password are in new line in file.
You can read four lines at a time like this
String f_name = bufferedReader.readLine();
String l_name = bufferedReader.readLine();
String username = bufferedReader.readLine();
String password = bufferedReader.readLine();
Upvotes: 2