View Javadoc

1   /* OpenLogViewer
2    *
3    * Copyright 2011
4    *
5    * This file is part of the OpenLogViewer project.
6    *
7    * OpenLogViewer software is free software: you can redistribute it and/or modify
8    * it under the terms of the GNU General Public License as published by
9    * the Free Software Foundation, either version 3 of the License, or
10   * (at your option) any later version.
11   *
12   * OpenLogViewer software is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   * GNU General Public License for more details.
16   *
17   * You should have received a copy of the GNU General Public License
18   * along with any OpenLogViewer software.  If not, see http://www.gnu.org/licenses/
19   *
20   * I ask that if you make any changes to this file you fork the code on github.com!
21   *
22   */
23  
24  package org.diyefi.openlogviewer.utils;
25  
26  import java.io.BufferedInputStream;
27  import java.io.File;
28  import java.io.FileInputStream;
29  import java.io.IOException;
30  import java.io.InputStream;
31  
32  
33  public final class Utilities {
34  	/**
35  	 * Prevent instantiation.
36  	 */
37  	private Utilities() {
38  	}
39  
40  	public static String getExtension(final File f) {
41  		String ext = null;
42  		final String s = f.getName();
43  		final int i = s.lastIndexOf('.');
44  
45  		if (i > 0 && i < s.length() - 1) {
46  			ext = s.substring(i + 1).toLowerCase();
47  		}
48  		return ext;
49  	}
50  
51  	public static int countBytes(final File f, final byte b) throws IOException {
52  		InputStream is = new BufferedInputStream(new FileInputStream(f));
53  		try {
54  			byte[] data = new byte[8192];
55  			int lines = 0;
56  			int readCount = 0;
57  			boolean empty = true;
58  			while ((readCount = is.read(data)) != -1) {
59  				empty = false;
60  				for (int i = 0; i < readCount; ++i) {
61  					if (data[i] == b) {
62  						lines++;
63  					}
64  				}
65  			}
66  			return (lines == 0 && !empty) ? 1 : lines;
67  		} finally {
68  			is.close();
69  		}
70  	}
71  
72  }