Avatar billede concin Nybegynder
06. juli 2004 - 16:24 Der er 19 kommentarer og
1 løsning

Problemer med Java I/O

Hej igen! Det forholder sig sådan at jeg er ved at lave en lille (simpel!) chat for at lege lidt med java's I/O.

Det fungerer således, at når en bruger skriver, så skal den sende det, som brugeren har skrevet til en simpel php-backend, som så lægger teksten ind i en tekstfil, som Java derefter læser ind.

Jeg har ingen problem med at få Java til at indlæse min tekstfil, men jeg kan ikke rigtig få den til at skrive. Jeg har prøvet lidt, men jeg sidder fast med følgende kode:

void WriteChat() throws Exception {
  String CHAT_INPUT_TEXT = txtString.getText();
  String CHAT_INPUT = navn + ": " + CHAT_INPUT_TEXT;
  URL chat = new URL("http://www.webdruid.dk/backend/log.php?chattext=" + CHAT_INPUT);
    // og hvad gør jeg hernede for at få den til at sende data til den url?
  }

Jeg har valgt at inkludere koden til min allerede virkende funktion, som indlæser tekstfilen:

void UpdateChat() throws Exception {
  String CHAT_TEXT;
  URL chat = new URL("http://www.webdruid.dk/backend/chatlog.txt");
  DataInputStream chatStream = new DataInputStream(chat.openStream());
  while((CHAT_TEXT = chatStream.readLine()) != null) {
    lstChat.add(CHAT_TEXT);
  }
  chatStream.close();
}

Hvis i vil se min PHP backend, så skriv endelig, den er uhyre simpel, men hvis det bliver nødvendigt, så skriv endelig... Hvis der er noget, jeg ikke har beskrevet godt nok, så sig også endelig til! Det er lidt svært at overskue når der er en del tekst her :)

"BONUS SPØRGSMÅL" : Når jeg compiler min kode, siger den at der er kommet deprecation warnings - og det har rimelig sikkert(?) noget med min Update funktion at gøre - hvad har jeg brugt af gamle funktioner her?

Jeg håber, I kan hjælpe.
Avatar billede concin Nybegynder
06. juli 2004 - 16:46 #1
Nu har jeg selv fået den til at opdatere (endelig), men jeg vil stadig gerne høre, hvad det er, som kan deprecate min kode?
Avatar billede arne_v Ekspert
06. juli 2004 - 17:38 #2
deprecated betyder at du bruger en feature i standard Java biblioteket som man
anbefaler at lade være med at bruge.
Avatar billede arne_v Ekspert
06. juli 2004 - 17:39 #3
Hvis du compiler med:

javac -deprecation

så får du at vide hvor det er.
Avatar billede concin Nybegynder
06. juli 2004 - 18:13 #4
Okay mange tak Arne. Smid lige et svar, så ska' du få point.
Har du arbejdet med java i mange år? Du har da styr på rigtig meget med Java, JSP osv.
Avatar billede arne_v Ekspert
06. juli 2004 - 18:19 #5
svar
Avatar billede arne_v Ekspert
06. juli 2004 - 18:20 #6
Jeg har arbejdet meget med Java siden efteråret 1999.
Avatar billede arne_v Ekspert
06. juli 2004 - 18:20 #7
PS: Hvad var det der var deprecated ?
Avatar billede concin Nybegynder
06. juli 2004 - 18:28 #8
Jeg ved faktisk ikke helt endnu, sidder og leder lidt i JBuilder efter et sted hvor man kan smide parametre efter compileren.
Avatar billede arne_v Ekspert
06. juli 2004 - 18:34 #9
Nyere versioner af JBuilder laver et gult spørgsmåls tegn og skriver faktisk
hva der er som er deprecated.
Avatar billede arne_v Ekspert
06. juli 2004 - 18:35 #10
Det styres i:

project
properties
build
java
show depracations
Avatar billede concin Nybegynder
06. juli 2004 - 19:01 #11
Ahhh jeg er jo blind - det var slået til pr. default :)

"textchat.java": readLine() in java.io.DataInputStream has been deprecated at line 142, column 39

Koden er:
while ( (CHAT_TEXT = chatStream.readLine()) != null) {
Avatar billede arne_v Ekspert
06. juli 2004 - 19:03 #12
Ah ja.

DataInputStream readLine er deprecated.

Afløseren er BufferedReader readLine.
Avatar billede concin Nybegynder
06. juli 2004 - 19:09 #13
Ahh okay! Tak skal du have!
Avatar billede concin Nybegynder
06. juli 2004 - 19:10 #14
Hvorfor bliver de egentlig deprecated? Pga. fejl eller mangler eller sikkerhedsbrist? Eller bare "ud med det gamle, ind med det nye"?
Avatar billede arne_v Ekspert
06. juli 2004 - 19:13 #15
Fordi der er nogle uhensigtsmæssigheder med dem.

I dette tilfælde mener jeg at problemet er manglende support for forskellige
karakter sæt.
Avatar billede concin Nybegynder
06. juli 2004 - 19:57 #16
Jeg har godt nok, når jeg kører chatten, nogle små problemer med at " = \" og ' = \'.
Avatar billede arne_v Ekspert
06. juli 2004 - 20:02 #17
Kan du forklare nærmere ?
Avatar billede concin Nybegynder
06. juli 2004 - 20:17 #18
Ja.
F.eks, hvis jeg skriver:
"Børge's bil"

Vil chatten outputte:
"Børge\'s bil"

Altså, den sætter en \ bag ' og " for at forhindre den i at opfatte dem som værende en del af en string.
Avatar billede arne_v Ekspert
06. juli 2004 - 20:27 #19
Det må være noget PHP scriptet gør.

Hvis du er på Java 1.4.x så kan du bruge:

stringvar = stringvar.replaceAll("\\'","'");

eller

stringvar = stringvar.replaceAll("\\","");

til at slippe af med dem når de komemr tilbage.
Avatar billede concin Nybegynder
06. juli 2004 - 21:03 #20
Ahh okay, mange tak skal du have.
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