Avatar billede shj Nybegynder
03. april 2000 - 21:55 Der er 2 kommentarer og
1 løsning

Gennemlæsning af fil?

Hej! Nu er det ikke førsrte gang jeg stiller dumme spørgsmål her, men jeg er stadigvæk ny i java. Jeg vil gerne kunne gennemlæse en ascii fil char for char. i c/c++ er det vist noget i stil med!
char mychar;
while(!myfile.eof());
mychar = getchar();
    if(mychar=='a')
    {
    cout <<"there is an "<<mychar<<endl;
    }
}

Jeg har i et tidligere spørgsmål fundet denne metode!
public void readfile() {
    try{
        index=new URL(getDocumentBase(),"news.txt");
        BufferedReader s1=new BufferedReader(new InputStreamReader(index.openStream()));
        while(true) {
            String line=s1.readLine();
            if(line==null)
            break;
            t=line;
        }
    }
    catch (IOException e){
        System.err.println("ERROR: " + e) ;
    }
}

Hvordan kan jeg aktivt arbejde med indhold af filer i java gerne i et loop.
og er der en tålmodig sjæl der vil forklare lidt nærmere omkring String og char, indsæt udskifte chars og strings i en fil?

Hvis bare 10% af spørsmålet bliver forklaret eller henvisning til URL så er jeg en rigtig glad hjemme programmør :-)
Venlig hilsen Simon
Avatar billede ricki Nybegynder
08. april 2000 - 19:53 #1
du kan istedet for readLine() bruge read() den retunerer ascii-værdien på et tegn, så kan du altid putte den ind i en Character hvis du vil have det som et tegn.
Avatar billede skovborg Nybegynder
17. maj 2000 - 23:17 #2
public void dekrypter(String fil){
       
        int i2=0;
        char text;
       
        try{
            FileInputStream kryptfil=new FileInputStream(fil);
            while(((i2=kryptfil.read())!=-1)){//her indlæser jeg en int fra filen når enden af filen er nået retunere read() -1
                text=(char)i2;// her caster jeg til char det vil sige at jeg omdanner den til en char
                System.out.print(""+text);//der udskrives
               
            }
           
            kryptfil.close();
           
        }   
        catch(IOException e){
            System.out.println("Fejl "+e);
            //System.exit(1);
        }
       
    }

Hej sjh
det her er fra et program jeg lavede for et stykke tid siden. det er en funktion der modtager en streng (navnet og stien til filen).da jeg tester på en int i while sætningen hvor jeg også læser fra filen caster jeg den til char hvor efter jeg skriver den ud.
Avatar billede shj Nybegynder
18. maj 2000 - 20:48 #3
Hej Skovborg, tak for et godt indlæg i spørgsmålet, jeg har siden fået lavet en lille rutine, dog ikke særlig avanceret. Den kan udskifte chars i en txtfil. Det er jo udemærket hvis man arbejder i et miljø der ikke understøtter æ, ø og å. Så her er den altå. Jeg skal vist også lige have læst lidt på Exceptions i java, jeg kan forstå det er en form for "error" handling i java. 

import java.io.*;

public class filio {
  public static void main(String[] args) throws IOException {

  File inputFile = new File("Simon.txt");
  File outputFile= new File("Simonkon.txt");
  FileReader in = new FileReader(inputFile);
  FileWriter out = new FileWriter(outputFile);
    int c;
    char sh ='A'; 
      while ((c = in.read()) != -1)
       
     
        if((char) c  == sh) {
          out.write("a");
        }
        else {
        out.write(c);
        }
        in.close();
        out.close();
  }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester