Bonjour , dans la cadre d'une série d'exercices sur les tampons,
j'ai un problème de décodage avec asCharBuffer()
voici un bout de code où
- je déclare un ByteBuffer
- j'utilise la méthode slice()
- ensuite je teste la méthode asCharBuffer()
- et malheureusement , je récupère des ?????????? à la place de mon texte
qui devrait être "Un rapport quelconque..."
Il s'agit sans doute d'un problème de Charset mais je dois dire que ce n'est pas ma spécialité ...
Si quelqu'un peut m'aider, MERCI !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 package tampons_jeter; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.Charset; public class Essai_Tampon { static public void main(String args[]) throws Exception { String contenu = "Un contenu quelconque..."; System.out.println("Tampon d'origine : " + contenu); ByteBuffer tampon = ByteBuffer.allocate(contenu.length()); System.out.println("longueur de la chaine : " + contenu.length()); tampon.put(contenu.getBytes()); tampon.flip(); System.out.print("tampon contenu 1 : "); while (tampon.remaining() > 0) { System.out.print((char)tampon.get()); } System.out.println(); System.out.println(); tampon.position(3); tampon.limit(10); ByteBuffer decoupe = tampon.slice(); System.out.print("Sous-tampon : "); for (int i = 0; i < decoupe.capacity(); i++) { byte o = decoupe.get(i); System.out.print((char)o); } System.out.println("\nModification du sous-tampon..."); decoupe.position(0); decoupe.put("rapport".getBytes()); tampon.position(0); tampon.limit(tampon.capacity()); CharBuffer cb = tampon.asCharBuffer(); System.out.print("Transformation du Tampon d'origine : "); while (tampon.remaining() > 0) { System.out.print((char)tampon.get()); } System.out.println(); //-------------------------------------------------------------------------------------------- // Créer une vue asCharBuffer() System.out.println("Créer une vue asCharBuffer()"); while (cb.hasRemaining()) { //System.out.print((char)cb.get()); System.out.print((char) cb.get()); } } }
Partager