19. juli 2001 - 13:51Der er
10 kommentarer og 1 løsning
Printwriter ArrayList
Jeg har et program der kører en socket conn.
problemet er at clienten kan logge ind og sætte et program i gang og får outputtet derfra printet ud på skærmen, men logger han af skal dette output gæmmes i en ArrayList og logger han så på igen vil han få printet hele denne ArrayList ud på skærmen... altså..jeg vil gerne have at når mine klasser kalder min PrintWriter: out.println at jeg så får outputtet lagt i en ArrayList.
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
der bør selvfølgelig tilføjes set (og måske get) metoder til ArrayListen og lidt exception handling hvis den er null, osv. men ideen skulle være der. Hvis du får PrintWriteren fra et bestemt sted bliver du nok nød til at lave en wrapper:
public class MyWriter implements PrintWriter {
private PrintWriter writer;
public MyWriter(PrintWriter w) { writer = w; }
// dette skal gøres for alle metoder i PrintWriter :( public void println(String s) { // gem s writer.println(s); } }
jeg har en metode der hedder getWriter der returnerer min writer og den skulle gerne stadig returnere en printwriter da alle mine variabler er sat som PrintWriter
jeg har eks en: PrintWriter out = IO.getWriter(); det er denne out der skal printe til ArrayListen.
kan jeg stadig returnere min MyWriter som en PrintWriter når den er nedarvet ?
Når du extender en klasse arver du ikke constructorerne fra superklassen. Den tilføjer automatisk den tomme constructor svarende til:
Buffer() { super(); }
Men sådan en constructor har PrintWriter ikke. Du bliver nød til at explicit lave constructorer i Buffer som den jeg lige skrev her, bare med passende parametre i.
Forresten mangler du at kalde super.println(s) ovenover hvis s skal skrives ud.
Hvis det er ok med dig, kan du evt. gemme data i en StringWriter, f.eks.
StringWriter sr = new StringWriter(); PrintWriter out = new PrintWriter(sr); .. out.println(\"whatever\"); ..
ArrayList getContent() { ArrayList result = new ArrayList(); BufferedReader br = new BufferedReader(new StringReader(sr.toString()); for (String line = br.readLine(); line != null ; line = br.readLine()) result.add(line); return result; }
Synes godt om
Ny brugerNybegynder
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.