在java程序中,对于数据的输入/输出操作以”流“的方式进行的。
流是内存中一组有序数据序列
Java将数据从源读入到内存当中,形成了流,然后这些流可以写到目的地。
处理流是在节点流的基础上提供了更加强大的读写功能
字节流:以字节为单位来处理数据的,字节流数据为8位,一般用于对二进制的数据的读写,例如声音,图像等。
字符流:以字符为单位来处理数据的,一般用于读写文本文件的
1 package src; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileNotFoundException; 6 import java.io.FileOutputStream; 7 import java.io.IOException; 8 9 public class Test {10 11 public static void main(String[] args) {12 //输入外->内,读入数据,输出:内->外,写数据13 14 //任务:从file1文件读取数据到内存,a.输出到控制台验证,b.输出到file2文件中15 //1,创建一个给予file1的文件对象,,创建一个给予file2的文件对象,16 File f1=new File("c://file1.txt");17 18 File f2=new File("c://file2.txt");19 //2、 建立一个基于c://file1.txt文件的输入通道fis,建立一个基于c://file2.txt文件的输 出通道fos,20 try {21 FileInputStream fis=new FileInputStream(f1);22 FileOutputStream fos=new FileOutputStream(f2);23 //3、把通道fis数据读入到内存,从内存写到file2文件 24 int m;25 while((m=fis.read())!=-1)26 {27 fos.write(m);28 }29 30 31 32 } catch (FileNotFoundException e) {33 // TODO 自动生成的 catch 块34 e.PRintStackTrace();35 } catch (IOException e) {36 // TODO 自动生成的 catch 块37 e.printStackTrace();38 }39 40 41 42 }43 }
1 package src; 2 3 import java.io.File; 4 import java.io.FileNotFoundException; 5 import java.io.FileReader; 6 import java.io.FileWriter; 7 import java.io.IOException; 8 9 public class Test {10 11 public static void main(String[] args) {12 13 File f1=new File("d://file1.txt");14 15 File f2=new File("d://file2.txt");16 17 try {18 FileReader fis=new FileReader(f1);19 FileWriter fos=new FileWriter(f2);20 21 int m;22 while((m=fis.read())!=-1)23 {24 //输出到控制台上25 //System.out.print((char)(m));26 //输出到file2.txt文件上27 fos.write((char)(m));28 }29 30 } catch (FileNotFoundException e) {31 // TODO 自动生成的 catch 块32 e.printStackTrace();33 } catch (IOException e) {34 // TODO 自动生成的 catch 块35 e.printStackTrace();36 }37 }38 }
System类是Java语言中一个功能强大、非常有用的类,它提供了
标准输入/输出及运行时的系统信息。从System类不能创建对象,也
就是说,System类的所有属性和方法都是静态的,引用时要以
System作为前缀。System.in与System.out是System类的两个静态
属性,分别对应系统的标准输入/输出流。
其中,System.in称为标准输入流,用于程序输入,通常读取用户
从键盘输入的信息;System.out称为标准输出流,用于程序输出,
通常向用户显示信息;System.err称为标准错误流,用于向用户显示
出错信息。
1 package src; 2 3 import java.io.IOException; 4 5 public class Test { 6 7 public static void main(String[] args) { 8 9 System.out.println("请输入数据:");10 try {11 int i = System.in.read();12 System.out.println("输入的数据为:"+(char)i);13 } catch (IOException e) {14 // TODO Auto-generated catch block15 e.printStackTrace();16 }17 }18 }
1 //读取控制台信息到文件中去,当输入“q”时退出 2 package src; 3 4 import java.io.File; 5 import java.io.FileNotFoundException; 6 import java.io.FileOutputStream; 7 import java.io.IOException; 8 9 public class Test {10 11 public static void main(String[] args) {12 13 File f = new File("d://file1.txt");14 try {15 FileOutputStream fop = new FileOutputStream(f);16 while(true){17 //创建缓冲数组18 byte[] b = new byte[1024];19 System.out.println("请输入数据:");20 //将输入的数据放入缓冲区中,返回输入的字符串21 int len = System.in.read(b);22 if(b[0]=='q'){23 System.out.println("退出");24 break;25 }else{26 //将数据从0偏移开始读取len个字符27 fop.write(b, 0, len);28 }29 }30 } catch (FileNotFoundException e) {31 // TODO Auto-generated catch block32 e.printStackTrace();33 } catch (IOException e) {34 // TODO Auto-generated catch block35 e.printStackTrace();36 }37 38 }39 }
新闻热点
疑难解答