convertir Object [] de la corriente a byte []

Martin Frank:

Trato de filtrar una byte[], quiero eliminar los saltos de línea de la corriente

byte[] data = "y\neahbabydoit\nsothisistheway\ntodoit".getBytes();
Object[] tmp = IntStream.range(0, data.length).mapToObj(idx -> Integer.valueOf(data[idx]).byteValue()).filter(i -> i != 10).toArray();
System.out.println("src:"+Arrays.toString(data));
System.out.println("dst:"+Arrays.toString(tmp));

//works not!!
byte[] dest = (Byte[]) tmp; //help me here

El resultado (como se esperaba) funciona (hasta ahora) pero no soy capaz de convertir el resultado ( Object[]) en una forma fácil de volver (a byte[]) ...

src: [121, 10, 101, 97, 104, 98, ...
dst: [121, 101, 97, 104, 98, 97, ...

Sé que hay maneras de resolver este problema (véase Cómo convertir int [] a byte [] ) pero quiero hacerlo de una manera fácil (corriente similar) ...

alguna noticia de java 8 o más tarde?

RP:

Como sugirió @Mureinik, es mejor tratar con caracteres en lugar de bytes, para responder a su pregunta, que sin duda puede usar algo como

Byte[] tmp = IntStream.range(0, data.length)
        .mapToObj(idx -> Integer.valueOf(data[idx]).byteValue())
        .filter(i -> i != 10)
        .toArray(Byte[]::new);

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=186983&siteId=1
Recomendado
Clasificación