2 votes

Android Studio : Custom Writer Class extends BufferedWriter (PemWriter)

Voici un exemple de la classe que je dois utiliser. J'ai généralisé les noms pour atteindre le concept plutôt que mon utilisation particulière. J'essaie de comprendre comment l'utiliser. Donc, je ne peux pas changer cette partie, seulement ce qui se trouve dans mon activité :

public class MyWriter extends BufferedWriter {

public MyWriter(Writer out)
{
    super(out);
}

public void writeTest(String repeatthis) throws IOException {
    this.write(repeatthis);
    this.newLine();
    this.write("along with this other stuff.");
}
}

C'est ce qu'il y a dans mon activité :

    String iwantThisString = "";
    StringWriter writer = new StringWriter();
    MyWriter myWriter = new MyWriter(writer);
    String myNewString = "I want to see this repeated back to me.";

    try {
        myWriter.writeTest(myNewString);
        iwantThisString = writer.toString();  //Does not work.
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        writer.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

Comment faire pour que iwantThisString reprenne ce que writeTest est en train de déposer ?

Si vous voulez voir la classe que j'essaie d'utiliser, c'est la pemWriter de Spongy Castle.

0voto

Adam Winter Points 973

De plus, j'ai constaté que le code suivant fonctionne avec la bibliothèque spongy castle, tirée de : Exportation de la clé publique RSA vers PEM String en java

    PublicKey publicKey = keyPair.getPublic();
    StringWriter writer = new StringWriter();
    PemWriter pemWriter = new PemWriter(writer);
    pemWriter.writeObject(new PemObject("PUBLIC KEY", publicKey.getEncoded()));
    pemWriter.flush();
    pemWriter.close();
    return writer.toString();

0voto

Adam Winter Points 973

J'ai oublié de vider le rédacteur en mémoire tampon, car MyWriter s'étend sur BufferedWriter.

    StringWriter writer = new StringWriter();
    MyWriter myWriter = new MyWriter(writer);
    String myNewString = "I want to see this repeated back to me.";

    try {
        myWriter.writeTest(myNewString);
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        myWriter.flush();
        myWriter.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return writer.toString();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X