import java.io.*;
public class leggi{
public static void main(String args[]){
try{
PipedInputStream pis = new PipedInputStream();
BufferedInputStream bis = new BufferedInputStream(pis); //altrimenti mi legge solo la prima lettera
DataInputStream dis = new DataInputStream(bis); //per gestire il formaro byte
PipedOutputStream pos = new PipedOutputStream(pis);
BufferedOutputStream bos = new BufferedOutputStream(pos);
DataOutputStream dos = new DataOutputStream(bos);
dos.writeChar(System.in.read()); //scrivo sotto forma di byte
byte[] str;
dis.readFully(str[]);
for (int x=0; x<= str.lenght(); x++){
System.out.print((char)str[x]);
}
}catch(IOException ioe) {}
}
}
import java.io.*;
public class leggi {
public static void main(String args[]) throws Exception {
byte[] str = new byte[1024];
PipedInputStream pis = new PipedInputStream();
PipedOutputStream pos = new PipedOutputStream(pis);
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Inserisci una frase: ");
String frase = stdin.readLine();
pos.write(frase.getBytes()); // scrivo sotto forma di byte
pos.flush(); //segnalo la fine dei dati scritti
int n = pis.read(str); // in n c'è il numero di byte letti
System.out.println("Hai inserito: '" + new String(str, 0, n) + "'");
}
}
modificato e provato il programma, ma mi si blocca al readFully() non capisco perchè. ho messo un pario di println per vedere fino a dove arrivava e ne esce solo 1. poi non continua più
import java.io.*;
public class leggi{
public static void main(String args[]){
try{
PipedInputStream pis = new PipedInputStream();
BufferedInputStream bis = new BufferedInputStream(pis); //altrimenti mi legge solo la prima lettera
DataInputStream dis = new DataInputStream(bis); //per gestire il formaro byte
PipedOutputStream pos = new PipedOutputStream(pis);
BufferedOutputStream bos = new BufferedOutputStream(pos);
DataOutputStream dos = new DataOutputStream(bos);
dos.writeByte(System.in.read()); //scrivo sotto forma di byte
byte[] str = new byte[10];
System.out.println("fatto"); //controllo esecuzione
dis.readFully(str, 0 , 10);
System.out.println("fatto"); //controllo esecuzione
for (int x=0; x<= 10; x++){
System.out.print((char)str[x]);
}
}catch(IOException ioe) {}
}
}
comunque il libro che sto leggendo non spiega molto bene BufferedReader e InputStreamReader. è un pargrafetto di mezza pagina e sto ancora provando con gli stream di byte
import java.io.*;
public class leggi{
public static void main(String args[]){
try{
PipedInputStream pis = new PipedInputStream();
BufferedInputStream bis = new BufferedInputStream(pis); //altrimenti mi legge solo la prima lettera
DataInputStream dis = new DataInputStream(bis); //per gestire il formaro byte
PipedOutputStream pos = new PipedOutputStream(pis);
BufferedOutputStream bos = new BufferedOutputStream(pos);
DataOutputStream dos = new DataOutputStream(bos);
dos.writeByte(System.in.read()); //scrivo sotto forma di byte
byte[] str = new byte[1024];
System.out.println("fatto"); //controllo esecuzione
dos.flush();
dis.read(str);
System.out.println("fatto"); //controllo esecuzione
for (int x=0; x<= 100; x++){
System.out.print((char)str[x]);
}
}catch(IOException ioe) {}
}
}