首先,从概念上的说,文件输入流,是指将数据从文件输入到内存(readFile),文件输出流,是指将数据从内存输出到文件(writeFile),拓展到输入输出流,输入流是指将数据从其他地方输入到内存(例如System.in,从控制台输入到内存),输出流是指将数据从内存输出到其他地方(System.out从内存到控制台),核心都是内存。
接下来,分别讲下二者的使用。
先是文件输入流(FileInputStream),创建时需要将准备写入内存的文件对象作为参数,(File file=new File(String filePath);FileInputStream in=new FileInputStream(file) ),读取文件内容时用read方法,其常用的重载方法有二,
1. read(),无参,从输入流中读取1Byte长的数据;(默认为byte型,如果要转换为char,可以强制转换,int value=in.read(); charval=(char)value;
2. read(Byte[]),从输入流中读取byte[]数组长度个byte的数据,并char val=(char)value;存入byte数组中
这两个方法都有一个同样的返回值int remain,即文件中剩余的数据个数,当剩余个数为0时,remain的值为-1;
再说文件输出流(FileOutputStream),创建时需要一个字符串型参数,作为输出路径,(该文件可以不存在,创建时输出流对象时会创建),eg:FileOutputStream in=new FileOutputStream(String despath),写入内容使使用write方法,out.write((data[i]+"").getBytes());这样才能写入字符
顺便mark一下如何获取键盘输入(控制台输入流) ,再用一个int数组将其保存
While(终止条件){
Scanner scan=new Scanner(System.in);
data[i]=scan.nextInt();
}