Java中的输入输出流
生活随笔
收集整理的這篇文章主要介紹了
Java中的输入输出流
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1 File類
- 1.1 File類的常用用法
- 2 字節流
- 2.1 字節輸入流InputStream
- 2.1.1 字節輸入流整體框架
- 2.1.2 FileInputStream的常用用法
- 2.2 字節輸出流OutputStream
- 2.2.1 字節輸出流整體框架
- 2.2.2 FileOutStream的常用用法
- 3 緩沖流
- 3.1 緩沖輸入流BufferedInputStream和緩沖輸出流BufferedOutputStream
- 4 字符流
- 4.1 字符流概述
- 5 字節字符轉換流
1 File類
1.1 File類的常用用法
在Java中,使用java.io.File類對文件進行操作。
下面看一下創建文件、創建文件夾的操作:
package com.imooc.file;import java.io.File; import java.io.IOException;public class FileDemo {public static void main(String[] args) {//創建File對象//File file1=new File("c:\\imooc\\io\\score.txt");//File file1=new File("c:\\imooc","io\\score.txt");File file=new File("c:\\imooc");File file1=new File(file,"io\\score.txt");//判斷是文件還是目錄System.out.println("是否是目錄:"+file1.isDirectory());System.out.println("是否是文件:"+file1.isFile());//創建目錄File file2=new File("c:\\imooc\\set\\HashSet");if(!file2.exists()) {file2.mkdirs();}//創建文件if(!file1.exists()) {try {file1.createNewFile();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}下面再看一下相對路徑和絕對路徑的簡單示例代碼:
package com.imooc.path;import java.io.File; import java.io.IOException;public class FileDemo {public static void main(String[] args) { // File f=new File("c:\\imooc\\java\\thread\\thread.txt"); // System.out.println(f.exists());File f=new File("thread.txt");try {f.createNewFile();//是否是絕對路徑System.out.println(f.isAbsolute());//獲取相對路徑System.out.println(f.getPath());//獲取絕對路徑System.out.println(f.getAbsolutePath());//獲取文件名System.out.println(f.getName());} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}2 字節流
2.1 字節輸入流InputStream
2.1.1 字節輸入流整體框架
2.1.2 FileInputStream的常用用法
FileInputStream:
- 從文件系統中的某個文件中獲得輸入字節。
- 用于讀取諸如圖像數據之類的原始字節流。
FileInputStream的常用用法:
看下示例代碼:
2.2 字節輸出流OutputStream
2.2.1 字節輸出流整體框架
2.2.2 FileOutStream的常用用法
常用方法如下:
簡單的示例程序如下:
下面看一下對文件的拷貝操作的實現:
package com.imooc.file;import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;public class FileOutputDemo1 {public static void main(String[] args) {// 文件拷貝try {FileInputStream fis=new FileInputStream("happy.gif");FileOutputStream fos=new FileOutputStream("happycopy.gif");int n=0;byte[] b=new byte[1024];while((n=fis.read(b))!=-1){fos.write(b,0,n);}fis.close();fos.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}catch(IOException e){e.printStackTrace();}}}3 緩沖流
3.1 緩沖輸入流BufferedInputStream和緩沖輸出流BufferedOutputStream
使用比較簡單,直接看如下示例代碼即可:
package com.imooc.file;import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;public class BufferedDemo {public static void main(String[] args) {try {FileOutputStream fos=new FileOutputStream("imooc.txt");BufferedOutputStream bos=new BufferedOutputStream(fos);FileInputStream fis=new FileInputStream("imooc.txt");BufferedInputStream bis=new BufferedInputStream(fis);long startTime=System.currentTimeMillis();bos.write(50);bos.write('a');bos.flush();System.out.println(bis.read());System.out.println((char)bis.read());long endTime=System.currentTimeMillis();System.out.println(endTime-startTime);fos.close();bos.close();fis.close();bis.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}4 字符流
4.1 字符流概述
字符流Reader:
字符流Writer:
5 字節字符轉換流
主要是InputStreamReader和OutputStreamWriter的用法,示例代碼如下:
package com.imooc.charstream;import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter;public class ReaderDemo {public static void main(String[] args) {try {FileInputStream fis=new FileInputStream("imooc.txt");InputStreamReader isr=new InputStreamReader(fis,"GBK");BufferedReader br=new BufferedReader(isr);FileOutputStream fos=new FileOutputStream("imooc1.txt");OutputStreamWriter osw=new OutputStreamWriter(fos,"GBK");BufferedWriter bw=new BufferedWriter(osw);int n=0;char[] cbuf=new char[10]; // while((n=isr.read())!=-1){ // System.out.print((char)n); // } // while((n=isr.read(cbuf))!=-1){ // String s=new String(cbuf,0,n); // System.out.print(s); // }while((n=br.read(cbuf))!=-1){//String s=new String(cbuf,0,n);bw.write(cbuf, 0, n);bw.flush();}fis.close();fos.close();isr.close();osw.close();br.close();bw.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}總結
以上是生活随笔為你收集整理的Java中的输入输出流的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 上汽大众T0UrANL后挡风玻璃多少钱?
- 下一篇: 白云区潭村电动车上牌网点?