problema file not found

Xenex134

Nuovo Utente
2
0
Salve ragazzi sto cercando di fare un programmino dove vi è un metodo che, dato il nome di un file di caratteri contenente una stringa per ogni riga ed una stringa s, verifica se il file contiene una stringa di lunghezza superiore a quella della stringa s.
Il problema che riscontro è che non mi trova il file che gli passo ....ammesso che il resto dello script vada bene (?) .....potreste aiutarmi per favore??

Java:
package prova;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Prova {

    public static void main(String[] args) throws IOException  {
            String s = "abcdef";
            String nome ="C:/Users/Marco/Desktop/prova.txt";
            conteggio(nome,s);
    }
   
public static String conteggio(String nome, String s) throws IOException{

       int p = s.length(); // numero lettere stringa prova
       
       try( BufferedReader reader = new BufferedReader(new FileReader(nome))){
        String line = reader.readLine();
        while(line!=null) {
           // System.out.println(line);
            int z= line.length(); // memorizzo in una variabile il numero di lettere della stringa
           
            if(z>p){
           
            return "Trovata una stringa più lunga di 's' ";
            }

            line = reader.readLine();
        }
        reader.close();
         
       }catch (FileNotFoundException ex){
         System.out.println(ex);
    }
    catch (IOException ex){
        System.out.println(ex);
    }
    return "Non ho trovato nessuna stringa più lunga di 's' ";    
}
}
 

DispatchCode

Utente Attivo
893
556
CPU
Intel i7 6700HQ, 2.60Ghz, 4 core 8 threads
Scheda Madre
Asustek
HDD
Hitachi 7200 rpm, 1TB
RAM
16GB DDR4 (2 slot su 4)
GPU
Nvidia Geforce GTX 960M, 4GB
Audio
Realtek
Net
30Mbps/3Mbps con Eolo
OS
Windows 10 64bit
Verifica bene dove si trova il file, perchè se la posizione è corretta, te lo deve trovare.
Non dovrebbe essere obbligatorio, ma Windows comunque usa per i percorsi il backslash, e non lo slash (ma non è comunque un problema secondo me).

Comunque non vedrai output, in quanto ignori il risultato del metodo che chiami: il metodo torna una stringa, ma non la memorizzi e non la stampi a video.
Dovresti fare tipo:

Java:
System.out.println(conteggio(nome,s));

Da un punto di vista concettuale comunque non è proprio esatto.
Visto che non ti interessa sapere di quanto è più lunga la stringa ma solo se viene trovata, puoi restituire un boolean, e dal main scegliere cosa stampare in output come messaggio.
 
  • Like
Reactions: Mursey

Entra

oppure Accedi utilizzando

Hot: PS5 VS XBOX X/S?

  • Playstation 5

    Voti: 296 63.5%
  • XBOX Series X/S

    Voti: 170 36.5%

Discussioni Simili