If i have a path of a .txt file, and i want to get all the data into one String, there is anyway i can do it?
I didnt found proper method in the io.File API
If i have a path of a .txt file, and i want to get all the data into one String, there is anyway i can do it?
I didnt found proper method in the io.File API
There's no single method that will read the entire file in java.io package, but you can quite easily do it by using a BufferedReader, reading line by line and appending them together with '\n' to get the full content. eg:
String line = null;
StringBuilder sb = new StringBuilder("");
BufferedReader br = new BufferedReader("c:/path/yourfile.txt");
while ((line = br.readLine()) != null) {
sb.append(line).append("\n");
}
// you may probably need to remove the last '\n' before toString()
String fileContent = sb.toString();
The easiest way would be to add an Apache Commons IO library to your project and use one of FileUtils.readFileToString methods
In the past, I have used the Java.util.Scanner class and had success with that. I would try writing a helper method like:
public String getFileAsString(String pathName){
StringBuilder fullTxtFileAsString = new StringBuilder();
Scanner in = new Scanner(new File(pathName));
while(in.hasNext()){
fullTxtFileAsString.append(in.nextLine);
fullTxtFileAsString.append("\n");
}
return fullTxtFileAsString.deleteCharAt(fullTxtFileAsString.size() - 1).
toString(); //Removes the extra newline character
}
You can use Files.readAllLines(Path file)
to read your txt file in a List, than you can use String.join(..)
to build a single String as below::
List<String> lines = Files.readAllLines(Paths.get("file.txt"));
String s = String.join( "", lines);
System.out.println(s);
hope this can help.