我们要给文件里面写东西,或者读取文件里的东西就需要用到字节流。我们学习io流的主要作用是复制文件,这样就需要读取这个文件的内容(输入流),编写到目的文件里(输出流)。io流主要分两种流字节流和字符流
字节流类主要以stream为结尾,不以stream为结尾的大多是字符流。
OutputStream此抽象类,是表示输出字节流的所有类的超类。操作的数据都是字节,定义了输出字节流的基本共性功能方法。
我们操作的都是文件,所以我们用文件字节输出流,我们找到了OutputStream抽象类的FileoutputStream子类,我们可以调用这个类来输出我们要写的东西。首先要明确输出的文件,如果没有就自动创建,有的话就覆盖掉。输出流中的方式都是write方法
先一个字节一个字节进行输出 类名点方法名调用,如果输出的是字节,目的地是txt文件,字节会根据ascll码表进行翻译然后输出。
也可以将字节数组写入文件中,还可以设置从第几位开始读取,读取长度是多少。
也可以输入字符串然后调用getbytes()转换成字节,然后可以调用new String()构造方法可以转回字节。
写文件的时候想续写或者换行怎么办呢 续写的话在目的文件路径后加true 换行的话write加入"\n\r "即可。
我们在编写代码中都发生了IO的异常,写目的文件的时候报了一个Filenotfoundexception异常 我们往上抛,我们下面write方法也报了一个IOexception异常我们往上抛,我们发现Filenotfoundexception异常是IOexception异常的子类,删掉子类异常,因为不管发布生异常都要释放资源,所以我们写一个finally 将close放到里面。
输入流和输出流类似,也需要调用子类FileinputStream 中的read方法来读取文件中的内容读不到的时候就会返回一个-1,int可以和char相互转换。
学习了输入流和输出流我们就可以写出如图代码 进行复制文件操作
原文:https://www.cnblogs.com/cactus1/p/14454031.html