Exception in thread "main" java.sql.SQLException

Résolu/Fermé
AHop Messages postés 22 Date d'inscription jeudi 18 mai 2017 Statut Membre Dernière intervention 24 mai 2017 - 19 mai 2017 à 21:49
AHop Messages postés 22 Date d'inscription jeudi 18 mai 2017 Statut Membre Dernière intervention 24 mai 2017 - 19 mai 2017 à 22:44
Bonjour,

j'arrive pas à detecter c'est quoi l'erreur



7 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
19 mai 2017 à 21:54
Bonjour,

Le message est assez explicite : le fichier est introuvable.
Soit il n'existe pas, soit le programme n'a pas les droits pour y accéder.

Remarque : une SQLException pour un problème de fichier c'est faux.
0
AHop Messages postés 22 Date d'inscription jeudi 18 mai 2017 Statut Membre Dernière intervention 24 mai 2017
Modifié le 19 mai 2017 à 21:58
le fichier existe et le programme à les droits d'accés
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
19 mai 2017 à 22:01
Il faut voir le code alors.
Le message de l'exception est peut être aussi faux que son type...
0
AHop Messages postés 22 Date d'inscription jeudi 18 mai 2017 Statut Membre Dernière intervention 24 mai 2017
19 mai 2017 à 22:11
avec ce code j'ai créer le nouveau fichier txt


package calcul;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class A1 {
	static String Newligne = System.getProperty("line.separator");

	public static void main(String[] args) throws Exception  {
	    Class.forName("org.relique.jdbc.csv.CsvDriver");


		String csvFile = "d:/fichier.txt";
		String csvFile1 = "C:\\csv\\csv.txt";

		List<LineFile> list;
		try {
			list = ListFromTXT(csvFile);

			TXTFromList(list, csvFile1);

			List<LineFile> list1 = ListFromTXT(csvFile1);

			for (int i = 0; i < list1.size(); i++) {

				LineFile lf = list1.get(i);
			
				
				System.out.println(lf.getAttribute5() + " + "
						+ lf.getAttribute6() + " = " + lf.getAttribute9());
				
			

			}

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public static void TXTFromList(List<LineFile> liste_files, String file_name)
			throws IOException {
		File fichier_clt = new File(file_name);
		

		BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(
				fichier_clt, true));
		bufferedWriter.append("id,origin,destination,capacite,eo,Em,DTM,DTD");


		for (LineFile lfile : liste_files) {

			String cont = "";
			cont = cont + lfile.getAid() + ",";
			cont = cont + lfile.getAttribute2() + ",";

			cont = cont + lfile.getAttribute3() + ",";

			cont = cont + lfile.getAttribute4() + ",";

			cont = cont + lfile.getAttribute5() + ",";
			cont = cont + lfile.getAttribute6() + ",";
			cont = cont + lfile.getAttribute7() + ",";
			cont = cont + lfile.getAttribute8() + ",";
		


			cont = cont + lfile.getAttribute9();

			cont = cont + Newligne;
		

			bufferedWriter.write(cont);
		}
		bufferedWriter.close();

	}

	public static List<LineFile> ListFromTXT(String file_name)
			throws IOException {
		BufferedReader br = null;
		String line = "";
		ArrayList<LineFile> files = new ArrayList<LineFile>();

		try {

			br = new BufferedReader(new FileReader(file_name));
			int cpt = 0;
			while ((line = br.readLine()) != null) {
				if (cpt > 0) {
					String[] ls = line.split(",");

					LineFile lineFile = new LineFile();
					lineFile.setAttribute1(ls[0]);
					lineFile.setAttribute2(ls[1]);
					lineFile.setAttribute3(ls[2]);
					lineFile.setAttribute4(ls[3]);
					lineFile.setAttribute5(ls[4]);
					lineFile.setAttribute6(ls[5]);
					lineFile.setAttribute7(ls[6]);
					lineFile.setAttribute8(ls[7]);


					//
					DateFormat df = new SimpleDateFormat("yyyy-MM-dd_HH:mm");
					DateFormat df1 = new SimpleDateFormat("HH:mm");

					Calendar c1 = Calendar.getInstance();
					String date1 = lineFile.getAttribute5();
					try {
						c1.setTime(df.parse(date1));
					} catch (ParseException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}

					Calendar c2 = Calendar.getInstance();
					String time = lineFile.getAttribute6();

					try {
						c2.setTime(df1.parse(time));
					} catch (ParseException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					Calendar cTotal = (Calendar) c1.clone();

					cTotal.add(Calendar.HOUR_OF_DAY, c2.get(Calendar.HOUR_OF_DAY));
					cTotal.add(Calendar.MINUTE, c2.get(Calendar.MINUTE));

					String somme = df.format(cTotal.getTime());
					System.out.println(somme);
					

					lineFile.setAttribute9(somme );

					
					files.add(lineFile);
					
					

					
					
					
				}
				cpt++;

			}

			return files;
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			return null;
		} catch (IOException e) {
			e.printStackTrace();
			return null;
		} finally {
			if (br != null) {
				try {
					br.close();
				} catch (IOException e) {
					e.printStackTrace();
					return null;
				}
			}
		}

	}

}




et ce code pour faire le trie du nouveau fichier

package calcul;

import java.sql.*;
import java.util.Properties;

import org.relique.jdbc.csv.CsvDriver;

public class ConCsv
{
  public static void main(String[] args) throws Exception
  {
    Class.forName("org.relique.jdbc.csv.CsvDriver");

    
    Properties props = new Properties();
    props.put("fileExtension", ".txt");

    Connection conn = DriverManager.getConnection("jdbc:relique:csv:C:\\csv", props);

    
    Statement stmt = conn.createStatement();

    ResultSet results = stmt.executeQuery("select * from requests order by eo");

   
    boolean append = true;
    CsvDriver.writeToCsv(results, System.out, append);

    conn.close();
  }
}
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
19 mai 2017 à 22:16
Le code de CsvStatement :

https://sourceforge.net/p/csvjdbc/code/ci/csvjdbc-1.0.31/tree/src/main/java/org/relique/jdbc/csv/CsvStatement.java

Lignes 350 et suivantes :

if (path != null && (!connection.isIndexedFiles()))
{
    fileName = path + tableName + connection.getExtension();

    CsvDriver.writeLog("CSV file name: " + fileName);

    File checkFile = new File(fileName);

    if (!checkFile.exists())
    {
        throw new SQLException(CsvResources.getString("fileNotFound") + ": " + fileName);
    }

    if (!checkFile.canRead())
    {
        throw new SQLException(CsvResources.getString("fileNotReadable") + ": " + fileName);
    }
}

Le message fileNotFound ne peut être obtenu que si checkFile.exists() renvoie false, il faut donc se référer à la documentation de File :

https://docs.oracle.com/javase/8/docs/api/java/io/File.html#exists--

"true if and only if the file or directory denoted by this abstract pathname exists; false otherwise"

Donc on en revient à ce que je disais, le fichier n'existe pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
AHop Messages postés 22 Date d'inscription jeudi 18 mai 2017 Statut Membre Dernière intervention 24 mai 2017
19 mai 2017 à 22:21
la creation du fichier ell se fait corectement et le fichier existe
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
19 mai 2017 à 22:23
Sauf que le fichier que le programme cherche c'est requests.txt (qui correspond à la table sur laquelle tu fais ton select), toi tu as un fichier csv.txt
0
AHop Messages postés 22 Date d'inscription jeudi 18 mai 2017 Statut Membre Dernière intervention 24 mai 2017
19 mai 2017 à 22:29
tu as raison j'ai changer le nom de la table mais il se produit un nouveau erreur
0
AHop Messages postés 22 Date d'inscription jeudi 18 mai 2017 Statut Membre Dernière intervention 24 mai 2017
19 mai 2017 à 22:44
c bon c'est fait Merci
0