今天遇到 java IO读写文件不一致的问题

package file.stream;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

public class FileOperation {

/**
* @param args
*/
public static void main(String[] args) throws Exception{
   byte[] b = new byte[1024];
   InputStream inputStream = new FileInputStream("src\aa.txt");
   OutputStream outputStream = new FileOutputStream("src\tt.txt");
      while(true){
      int n = inputStream.read(b);
      outputStream.write(b);
      if(n==-1){
      break;
      }    
      inputStream.close();
      outputStream.close();
   
      }
}

}
运行以上代码之后aa.txt与tt.txt文件内容不一致。tt.txt文件内容多出一块。当将b调小到81之后就可以解决这个问题了
byte[] b = new byte[81];
或者用一下这段代码也可以:
package file.stream;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

public class FileOperation {

/**
* @param args
*/
public static void main(String[] args) throws Exception{
 
FileInputStream fin = new FileInputStream("src/aa.txt");
    OutputStream outputStream = new FileOutputStream("src/tt.txt");
      while(true){
      int n = fin.read();
      if(n==-1){
      break;
      }     
   
      outputStream.write(n);
     
      }
      fin.close();
      outputStream.close();
}

}
期待高手来解答!!!难道是byte缓冲区的问题?

你可能感兴趣的:(java)