L'écriture .ics fichier iCal à l'aide de java

Je tente de mettre en place mes propres iCal créateur à l'aide de java et pour une raison que je ne peux pas obtenir mon .fichier ics pour être reconnu. Je me demandais ce que je fais de mal, je peux obtenir une sortie qui ressemble exactement comme dans l'exemple de wikipedia. Quelle est la différence entre l' .fichier ics et la une fois que mon programme a généré.

Leur Exemple:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
UID:uid1@example.com
DTSTAMP:19970714T170000Z
ORGANIZER;CN=John Doe:MAILTO:john.doe@example.com
DTSTART:19970714T170000Z
DTEND:19970715T035959Z
SUMMARY:Bastille Day Party
END:VEVENT
END:VCALENDAR

Mon .fichier ics

BEGIN:VCALENDAR 
VERSION:1.0 
PRODID://Elara/lofy/tanare/delp/314sum2015//
BEGIN:VEVENT 
UID:uid1@example.com
DTSTAMP:19970714T170000Z
ORGANIZER;CN=John Doe:MAILTO:john.doe@example.com
DTSTART:19970714T170000Z
DTEND:19970715T035959Z
SUMMARY:Bastille Day Party
END:VEVENT 
END:VCALENDAR 

C'est le code utilisé pour générer le .fichier ics.

    import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
public class iCal {
private String version =    "VERSION:1.0 \n";
private String prodid =     "PRODID://Elara/lofy/tanare/delp/314sum2015//\n";
private String calBegin =   "BEGIN:VCALENDAR \n";
private String calEnd =     "END:VCALENDAR \n";
private String eventBegin = "BEGIN:VEVENT \n";
private String eventEnd =   "END:VEVENT \n";
public void iCal(){
}
public void write( String name ){
StringBuilder builder = new StringBuilder();
builder.append(name);
builder.append(".ics");
String testExample = "UID:uid1@example.com\nDTSTAMP:19970714T170000Z\nORGANIZER;
CN=John Doe:MAILTO:john.doe@example.com\nDTSTART:19970714T170000Z
\nDTEND:19970715T035959Z\nSUMMARY:Bastille Day Party\n";
try {
File file = new File(builder.toString());
//if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(calBegin);
bw.write(version);
bw.write(prodid);
bw.write(eventBegin);
bw.write(testExample);
bw.write(eventEnd);
bw.write(calEnd);
bw.close();
System.out.println("Done");
} catch (IOException e) {
e.printStackTrace();
}
}
}
  • peut-être qu'il attend \r\n ?
  • C'est exactement cela! Merci!!!!
  • Il est aussi préférable de déclarer une constante et l'utiliser pour les caractères de Saut de ligne. Par exemple, static final String NL = "\r\n" alors vous pouvez simplement ajouter NL à vous de variables que nécessaire, et vous n'avez qu'à changer le code en un seul endroit si vous avez été invité à
InformationsquelleAutor Jarrod Lofy | 2015-07-06