001: /*
002: * Created on 07/03/2004
003: *
004: * Swing Components - visit http://sf.net/projects/gfd
005: *
006: * Copyright (C) 2004 Igor Regis da Silva Simões
007: *
008: * This program is free software; you can redistribute it and/or
009: * modify it under the terms of the GNU General Public License
010: * as published by the Free Software Foundation; either version 2
011: * of the License, or (at your option) any later version.
012: *
013: * This program is distributed in the hope that it will be useful,
014: * but WITHOUT ANY WARRANTY; without even the implied warranty of
015: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
016: * GNU General Public License for more details.
017: *
018: * You should have received a copy of the GNU General Public License
019: * along with this program; if not, write to the Free Software
020: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
021: *
022: */
023: package br.com.igor.testes;
024:
025: /**
026: * Classe que conta as linhas existentes nos arquivos de uma determinado diretório
027: * Data de criação: (23/5/2003 16:03:37)
028: * @autor: Igor Regis da Silva Simoes - GECAF
029: */
030: public class Contador {
031:
032: private int linhas = 0;
033:
034: /**
035: * Comentário do construtor Contador.
036: */
037: public Contador() {
038: super ();
039: }
040:
041: /**
042: * @param args
043: */
044: public static void main(String args[]) {
045: if (args.length != 1) {
046: System.out.println("Numero de argumentos invalido!");
047: return;
048: }
049: Contador c = new Contador();
050: c.contar(args[0]);
051: }
052:
053: /**
054: * @param dir
055: */
056: public void contar(String dir) {
057:
058: java.io.File arquivo = new java.io.File(dir);
059:
060: if (!arquivo.exists())
061: System.out.println("O diretório especificado não existe.");
062: if (!arquivo.isDirectory())
063: System.out
064: .println("O caminho especificado não consiste em um diretório válido.");
065: if (!arquivo.canRead())
066: System.out
067: .println("Não foi possível ler conteúdo do diretório especificado.");
068:
069: String[] conteudo = arquivo.list();
070:
071: for (int i = 0; i < conteudo.length; i++) {
072: java.io.File arquivo2 = new java.io.File(arquivo
073: .getAbsolutePath()
074: + java.io.File.separator + conteudo[i]);
075: if (arquivo2.isDirectory())
076: contar(arquivo2.getAbsolutePath());
077: else
078: setLinhas(getLinhas(arquivo2));
079: }
080:
081: System.out.println("Total de linhas lidas: " + this .linhas);
082: }
083:
084: /**
085: * @param arquivo File representando o arquivo
086: * @return Quantidades de linhas em um arquivo
087: */
088: public int getLinhas(java.io.File arquivo) {
089:
090: java.io.BufferedReader fis = null;
091: int i = 0;
092:
093: try {
094: fis = new java.io.BufferedReader(new java.io.FileReader(
095: arquivo));
096:
097: while (fis.readLine() != null)
098: i++;
099:
100: } catch (Exception e) {
101: e.printStackTrace();
102: }
103: return i;
104: }
105:
106: /**
107: * @param linhas
108: */
109: public void setLinhas(int linhas) {
110: this.linhas += linhas;
111: }
112: }
|