不是很清楚楼主什么意思?
你想得到什么结果?
  开始 输入的字符串:aaaaa\naaaaa, 第二次是 123 那么第二次读进来的就是aaaaa123.你认为这样的结果不正确? 
"怎样才能读进来正确的数据啊?"  你认为什么数据是正确的!?

解决方案 »

  1.   

    楼主的buffer是没是没有清空??
      

  2.   

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    class dfg
    {

    public static void main(String[] args) throws Exception
    {
     int c=0;//记录放回字节数
     while(true)
     {
     byte[] array=new byte[1024];

     c=System.in.read(array);
         StringBuffer buffer = new StringBuffer("");
         String stringValue = "";
         
         for (int i = 0; i < c-2; i++) { //因为字节数组里也保存了/r/n
         buffer.append((char) array[i]);
           }  
         System.out.println(buffer);
         }
       }
        
    }
      

  3.   

    抱歉刚刚没讲清楚,输入aaaaaa\naaaaa我要获得的是aaaaaa也就是\n以前的东西
    之后在输入123\n后要获得的是123,而aaaaa123不是我要的结果。我要的是获取每次用户在\n之前的数据,以后的就不要了,还请各位帮忙。
      

  4.   

    //get the system input data and then make it to a string
    buffer.delete(0,buffer.length()-1); //请把这一句也加上,多次执行时
    for (int i = 0; i < array.length && (char) array[i] != '\n'; i++) {
    buffer.append((char) array[i]);
    } (以上语句执行多次)
      

  5.   

    不是的,光清空buffer是没用的,关键是我是掉用System.in.read(array)就已经是将以前的东西一并读进array里了(已经是aaaaa123\n),所以清空buffer是没用的啊
      

  6.   

    BufferedReader bf=new BufferedReader (new InputStreamReader(System.in));
    system.out.println("enter data1:" )String ss=bf.readLine()
    system.out.println(ss)
    system.out.println("enter data2:" )String s1=bf.readLine()
    system.out.println(ss)输出结果:
    enter data1:
    aaaaaaa
    aaaaaaa
    enter data2:
    123
    123旦愿这个对你有没有用