How to check if file content is empty
15,676
Solution 1
You could call File.length()
(which Returns the length of the file denoted by this abstract pathname) and check that it isn't 0
. Something like
File f = new File(source);
if (f.isFile()) {
long size = f.length();
if (size != 0) {
}
}
To ignore white-space (as also being empty)
You could use Files.readAllLines(Path)
and something like
static boolean isEmptyFile(String source) {
try {
for (String line : Files.readAllLines(Paths.get(source))) {
if (line != null && !line.trim().isEmpty()) {
return false;
}
}
} catch (IOException e) {
e.printStackTrace();
}
// Default to true.
return true;
}
Solution 2
InputStream is = new FileInputStream("myfile.txt");
if (is.read() == -1) {
// The file is empty!
} else {
// The file is NOT empty!
}
Of course you will need to close the is
and catch IOException
Author by
USB
Updated on June 04, 2022Comments
-
USB almost 2 years
I am trying to check if a file content is empty or not. I have a source file where the content is empty. I tried different alternatives.But nothing is working for me.
Here is my code:
Path in = new Path(source); /* * Check if source is empty */ BufferedReader br = null; try { br = new BufferedReader(new InputStreamReader(fs.open(in))); } catch (IOException e) { e.printStackTrace(); } try { if (br.readLine().length() == 0) { /* * Empty file */ System.out.println("In empty"); System.exit(0); } else{ System.out.println("not empty"); } } catch (IOException e) { e.printStackTrace(); }
I have tried using -
1. br.readLine().length() == 0 2. br.readLine() == null 3. br.readLine().isEmpty()
All of the above is giving as not empty.And I need to use -
BufferedReader br = null; try { br = new BufferedReader(new InputStreamReader(fs.open(in))); } catch (IOException e) { e.printStackTrace(); }
Instead of new File() etc.
Please advice if I went wrong somewhere.
EDIT
Making little more clear. If I have a file with just whitespaces or without white space,I am expecting my result as empty.