- java的输入输出流可以方便地实现数据的输入输出操作,在java中把不同的输入输出源(键盘,文件,网络连接)抽象地买描述成“流”,“流”可以分为字节流和字符流,字节流以字长为8位的字节为处理对象,字符流操作的是数据单元为16位的字符流。 “流”可以想象成一根水管,里面的数据可以想象成“水滴”,字节流的每一滴水滴为8位字长的字节,字符流位16位字长的字符流。
- 下面为一个简单的文件输入流处理实例,可以通过在实例化InputStream对象的时候传入具体的输入流,示例传入的是该java文件自身,具体的讲解穿插在代码中
import java.io.FileInputStream; import java.io.IOException; public class FileInputStreamTest { public static void main(String args[]) throws IOException { FileInputStream fileInputStream = new FileInputStream("E:\\JavaProject\\FileOperatins\\src\\FileInputStreamTest.java"); byte[] bbuf = new byte[1024]; int hasRead = 0; int time = 0; while ((hasRead = fileInputStream.read(bbuf))>0){ // read(byte[]b)方法实现从指定输入流中读取长度为b.length的数据,并将其存入到数组b中,并且返回 // 实际读取的字节数,这里的循环判断语句是确保读取到的字节长度大于零 System.out.print(new String(bbuf, 0, hasRead)); time++; System.out.println(hasRead); } fileInputStream.close(); // 关闭流提高安全性 } } //输出内容为: // import java.io.FileInputStream; // import java.io.IOException; // //public class FileInputStreamTest { // public static void main(String args[]) throws IOException { // FileInputStream fileInputStream = new FileInputStream("E:\\JavaProject\\FileOperatins\\src\\FileInputStreamTest.java"); // byte[] bbuf = new byte[1024]; // int hasRead = 0; // int time = 0; // while ((hasRead = fileInputStream.read(bbuf))>0){ read(byte[]b)方法实现从指定输入流中读取长度为b.length的数据,并将其存入到数组b中,并且返回 实际读取的字节数 // System.out.print(new String(bbuf, 0, hasRead)); // time++; // System.out.println(hasRead); // } // // fileInputStream.close(); 关闭流提高安全性 // } //} // //844