Avatar billede dennish Nybegynder
19. maj 2004 - 21:11 Der er 7 kommentarer og
1 løsning

Stringbuffer og over i en Vector

Jeg har lavet nedenstående kode:
Min inputstream indeholder forskellige strenge som er liste med ny linie. F.eks. Jeg vil gerne når jeg har læst disse strenge tilføje disse til min vector bkmarks så Kolding bliver det første element i vectoren og Fredericia bliver det næste osv. 

Kolding
Fredericia
Horsens
Aalborg
osv.

private Vector bkmarks;
private  StringBuffer message = null;
private InputStream inputStrm = null;           
private int ch;
private String bookmarks;
       
public Vector ReturnV()
{

        message = new StringBuffer();
        inputStrm = http.openInputStream();
        System.out.println("inputStream opened");
       
           
               
        while ((ch = inputStrm.read()) != -1)
        {
            message.append ((char) ch);
        }
        //bookmarks = message.toString();
        //this.bkmarks.addElement(bookmarks);
        inputStrm.close();
       
   
        System.out.println(message);
       
        return this.bkmarks;

}
Avatar billede arne_v Ekspert
19. maj 2004 - 21:15 #1
Hvorfor ikke:

Vector v = new Vector();
BufferedReader br = new BufferedReader(new FileReader(filnavn));
String line;
while ((line = br.readLine()) != null) {
  v.add(line);
}

?
Avatar billede dennish Nybegynder
19. maj 2004 - 21:49 #2
>> Arne fordi jeg bruger J2ME og der er BufferedReader og FileReader ikke tilgængelig.
Kan kun bruge følgende klasser:

InputStream, ByteArrayInputStream, DataInput, DataInputStream
Reader, InputStreamReader
OutputStream, ByteArrayOutputStream, DataOutput, DataOutputStream
Writer, OutputStreamWriter, PrintStream, StringBuffer

Så jeg bliver desværre mødt til ar bruge disse klasser
Avatar billede arne_v Ekspert
19. maj 2004 - 21:54 #3
Hm

Hvad med:

message = new StringBuffer();
while ((ch = inputStrm.read()) != -1)
{
    if (ch == '\n')
    {
        bookmarks = message.toString();
        this.bkmarks.addElement(bookmarks);
        message = new StringBuffer();
    }
    else
    {
        message.append ((char) ch);
    }
}
bookmarks = message.toString();
this.bkmarks.addElement(bookmarks);
Avatar billede dennish Nybegynder
19. maj 2004 - 22:10 #4
arne>> det virker desværre ikke. Når jeg printer vectoren bkmarks ud ser den sådan ud: Har godt nok brugt nogle andre bynavn, men det skulle jo ikke ændre noget. Har brugt

aalborg
noerresundby


printing contentes of Vector[a, aa, aal, aalb, aalbo, aalbor, aalborg, aalborg
, n, no, noe, noer, noerr, noerre, noerres, noerresu, noerresun, noerresund, noerresundb, noerresundby, noerresundby
]

Den skulle gerne se sådan ud
[aalborg, noerresundby]
Avatar billede arne_v Ekspert
19. maj 2004 - 22:23 #5
Det virker perfekt hos mig (J2SE) med 2 små ændringer:

import java.io.*;
import java.util.*;

public class By {
    public static void main(String[] args) throws Exception {
        InputStream inputStrm = new FileInputStream("C:\\by.txt");
        StringBuffer message;
        int ch;
        String bookmarks;
        Vector bkmarks = new Vector();
       
        message = new StringBuffer();
        while ((ch = inputStrm.read()) != -1)
        {
            if (ch == '\n')
            {
                bookmarks = message.toString();
                bkmarks.addElement(bookmarks);
                message = new StringBuffer();
            }
            else if(ch != '\r')
            {
                message.append ((char) ch);
            }
        }
        bookmarks = message.toString();
        if(bookmarks.length() > 0) bkmarks.addElement(bookmarks);
       
        System.out.println(bkmarks);
    }
}
Avatar billede dennish Nybegynder
19. maj 2004 - 22:33 #6
arne>> kanon så er den i vinkel. Fejlen var at jeg sad og skrev forkert kode. Tusinde tak for hjælpen :-), Jeg har dog istedet for brugt:
if(ch == 10)
{

}
og

else if(ch != 13)
{

}

Men det betyder egentlig ikke noget
Avatar billede dennish Nybegynder
19. maj 2004 - 22:33 #7
så skal du lige smide et svar arne
Avatar billede arne_v Ekspert
19. maj 2004 - 22:35 #8
svar
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