Java的知识点28——文件编码、IO流的实例
生活随笔
收集整理的這篇文章主要介紹了
Java的知识点28——文件编码、IO流的实例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?文件編碼? 字符 ——》字節(jié)? (編碼 encode)? ? ? ? ? ?字節(jié) ——》 字符(解碼 decode)
節(jié)點流? 處理流
package cn.dym;import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream;/*** 1.創(chuàng)建流* 2.選擇流* 3.操作* 4.釋放資源* @author Administrator**/ public class IOTest01 {public static void main(String[] args) {//1.創(chuàng)建源File src=new File("abc.txt");//2.選擇流try {InputStream is=new FileInputStream(src);//3.操作(讀取)int data1=is.read(); //第一個數(shù)據(jù) hint data2=is.read(); //第二個數(shù)據(jù) eint data3=is.read(); //第三個數(shù)據(jù) lint data4=is.read(); //第四個數(shù)據(jù) //不是數(shù)據(jù),文件末尾返回-1System.out.println((char)data1);System.out.println((char)data2);System.out.println((char)data3);System.out.println(data4);//4.釋放資源is.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}} }上面的寫法不好,標準的寫法如下:
package cn.dym; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; /*** 標準的寫法* 1.創(chuàng)建流* 2.選擇流* 3.操作* 4.釋放資源* @author Administrator**/ public class IOTest02 {public static void main(String[] args) {//1.創(chuàng)建源File src=new File("abc.txt");//2.選擇流InputStream is=null;try {is=new FileInputStream(src);//3.操作(讀取)int temp;while((temp=is.read())!=-1) {System.out.print((char)temp);}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {//4.釋放資源try {if(null!=is) {is.close();} } catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}} }?
分段讀取
package cn.dym; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; /*** 分段讀取* 1.創(chuàng)建流* 2.選擇流* 3.操作* 4.釋放資源* @author Administrator**/ public class IOTest03 {public static void main(String[] args) {//1.創(chuàng)建源File src=new File("abc.txt");//2.選擇流InputStream is=null;try {is=new FileInputStream(src);//3.操作(分段讀取)byte[] flush=new byte[1024]; //緩沖容器int len=-1;while((len=is.read(flush))!=-1) {// 字節(jié)數(shù)組 ————》 字符串 (解碼)String str=new String(flush,0,len);System.out.println(str);}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {//4.釋放資源try {if(null!=is) {is.close();} } catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}} }字節(jié)輸出流 —— 文件字節(jié)輸出流
package cn.dym;import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream;/*** 文件字節(jié)輸出流* 1.創(chuàng)建源* 2.選擇流* 3.操作(寫出內(nèi)容)* 4.釋放資源* @author Administrator**/ public class IOTest04 {public static void main(String [] args) { // 1.創(chuàng)建源File dest=new File("dest.txt"); // 2.選擇流OutputStream os=null;try{//os=new FileOutputStream(dest,true); //直接在文件中追加//os=new FileOutputStream(dest,false); // 先刪除文件原來的內(nèi)容,在把新的內(nèi)容寫進文件中os=new FileOutputStream(dest,true);// 3.操作(寫出內(nèi)容)String msg="IO is so easy\r\n";byte[] datas=msg.getBytes(); // 字符串——》字節(jié)數(shù)組(編碼)os.write(datas, 0, datas.length); os.flush();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {//4.釋放資源if(null!=os) {try {os.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}} } }文件的拷貝
package cn.dym; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; /*** 文件拷貝:文件字節(jié)輸入、輸出流*/ public class Copy {public static void main(String[] args) {copy("D:/java/workspace/IO_study02/src/cn/dym/Copy.java","copy.txt");}/*** 文件的拷貝 * @param srcPath* @param destPath*/public static void copy(String srcPath,String destPath) {//1、創(chuàng)建源File src = new File(srcPath); //源頭File dest = new File(destPath);//目的地//2、選擇流InputStream is =null;OutputStream os =null;try {is =new FileInputStream(src);os = new FileOutputStream(dest); //3、操作 (分段讀取)byte[] flush = new byte[1024]; //緩沖容器int len = -1; //接收長度while((len=is.read(flush))!=-1) {os.write(flush,0,len); //分段寫出} os.flush();}catch(FileNotFoundException e) { e.printStackTrace();}catch (IOException e) {e.printStackTrace();}finally{//4、釋放資源 分別關閉 先打開的后關閉try {if (null != os) {os.close();} } catch (IOException e) {e.printStackTrace();}try {if(null!=is) {is.close();}} catch (IOException e) {e.printStackTrace();}}} }總結(jié)
以上是生活随笔為你收集整理的Java的知识点28——文件编码、IO流的实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java的知识点27——打印子孙级目录和
- 下一篇: Java的知识点29—— 文件字符流、字