> 文档中心 > Java_io流详解(代码)

Java_io流详解(代码)

目录

创建文件

获取文件信息

目录操作

FileInputStream

FileOutputStream

文件拷贝

BufferedReader

BufferedWrter

BufferedCopy

字节处理流拷贝文件


创建文件

三种创建文件的方法:推荐使用第一种和第三种,也比较好记

//方法一:import java.io.File;import java.io.IOException;public class CreatFile {public static void main(String[] args) {String filePath="d:/YJH/new1.txt";//创建文件的路径File file =new File(filePath);try {file.createNewFile();System.out.println("文件创建成功");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
//方法二:import java.io.File;import java.io.IOException;public class CreatFile01 {public static void main(String[] args) {File parentFile = new File("d:/");//根目录String fileName = "new2.txt";//文件名File file = new File(parentFile,fileName);try {file.createNewFile();System.out.println("文件创建成功!");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
//方法三:import java.io.File;import java.io.IOException;public class CreatFile02 {public static void main(String[] args) {String parentFath = "d:/YJH/";String fileName = "news3.txt";File file = new File(parentFath,fileName);try {file.createNewFile();System.out.println("文件创建成功!");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

获取文件信息

//获取文件信息import java.io.File;public class FileInformation {public static void main(String[] args) {Information();}public static void Information() {File file = new File("d:/YJH/new1.txt");System.out.println(file.getName());//文件名System.out.println(file.isAbsolute());//是否是绝对路径System.out.println(file.exists());//是否存在System.out.println(file.length());//文件长度System.out.println(file.getParent());//根目录System.out.println(file.getAbsolutePath());}}

目录操作

//删除文件import java.io.File;public class FileDelete {public static void main(String[] args) {delete01();}public static void delete01() {String filePath = "d:/YJH/new1.txt";//文件路径File file = new File(filePath);if(file.exists()) {if(file.delete()) {System.out.println("删除成功");} else {System.out.println("删除失败");}} else {System.out.println("文件不存在!");}}}
//目录删除操作import java.io.File;public class FileDelete01 {public static void main(String[] args) {m1();}public static void m1() {String filePath = "d:/demo01";//目录路径File file = new File(filePath);if(file.exists()) {if(file.delete()) {System.out.println("目录删除成功");} else {System.out.println("删除失败");}} else {System.out.println("目录不存在!");}}}
//创建多级目录import java.io.File;public class directoryCreate {public static void main(String[] args) {m1();}public static void m1() {String directoryPath = "d:/demo/a/b/";File file = new File(directoryPath);if(file.exists()) {System.out.println("多级目录存在");} else {if(file.mkdirs()) {//不能是file.mkdir() 这是单级目录System.out.println("多级目录创建成功");} else {System.out.println("多级目录创建失败");}}}}

FileInputStream

import java.io.FileInputStream;import java.io.IOException;/** *  * @author 战士小小白 * 读取文件内容 * 单个字节读取,效率比较低 */public class ReadFile_ {public static void main(String[] args) {readFile01();}public static void readFile01() {String filePath = "d:/hello.txt";int readData = 0;FileInputStream fileInputStream = null;try {fileInputStream = new FileInputStream(filePath);while((readData=fileInputStream.read())!=-1) {System.out.print((char)readData);}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {fileInputStream.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
//多个字节读取 效率高import java.io.FileInputStream;import java.io.IOException;public class FileInputStream_ {public static void main(String[] args) {readFile02();}public static void readFile02() {String filePath = "d:/hello.txt";byte[] buf = new byte[8];int readLen = 0;FileInputStream fileInputStream = null;try {fileInputStream = new FileInputStream(filePath);while((readLen=fileInputStream.read(buf))!=-1) {System.out.print(new String(buf,0,readLen));}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {fileInputStream.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}

FileOutputStream

package com.xxb.outputStream;import java.io.FileOutputStream;import java.io.IOException;public class FileOutputStream_ {public static void main(String[] args) {outputStream01();}public static void outputStream01() {String filePath = "d:/abcd.txt";FileOutputStream fileOutputStream = null;try {fileOutputStream = new FileOutputStream(filePath);fileOutputStream.write('H');} catch (IOException e) {//换成IOException// TODO Auto-generated catch blocke.printStackTrace();} finally {try {fileOutputStream.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
package com.xxb.outputStream;/** * @author 战士小小白 */import java.io.FileOutputStream;import java.io.IOException;public class FileOutputStream01 {public static void main(String[] args) {outputStream01();}public static void outputStream01() {String filePath = "d:/asd.txt";FileOutputStream fileOutputStream = null;try {fileOutputStream = new FileOutputStream(filePath);String str = "hello,world";fileOutputStream.write(str.getBytes());} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {fileOutputStream.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
//截取字符串的一段package com.xxb.outputStream;import java.io.FileOutputStream;import java.io.IOException;public class fileOutputStrream02 {public static void main(String[] args) {output02();}public static void output02() {String filePath = "d:/abcdf.txt";FileOutputStream fileOutputStream = null;try {fileOutputStream = new FileOutputStream(filePath);String str = "xxb,hello";fileOutputStream.write(str.getBytes(),0,3);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {fileOutputStream.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
//追加 不覆盖原来的内容package com.xxb.outputStream;import java.io.FileOutputStream;import java.io.IOException;public class fileOutputStrream02 {public static void main(String[] args) {output02();}public static void output02() {String filePath = "d:/abcdf.txt";FileOutputStream fileOutputStream = null;try {fileOutputStream = new FileOutputStream(filePath,true);//改成trueString str = "xxb,hello";fileOutputStream.write(str.getBytes(),0,3);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {fileOutputStream.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}

文件拷贝

package com.hsp.InputStream_;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class FileCopy_01 {public static void main(String[] args) {String srcFilePath = "d:/YJH/earth.jpg";String destFilePath = "d:/earth1.jpg";FileInputStream fileInputStream = null;FileOutputStream fileOutputStream = null;try {fileInputStream = new FileInputStream(srcFilePath);fileOutputStream = new FileOutputStream(destFilePath);byte[] buf = new byte[1024];int readLen = 0;while((readLen=fileInputStream.read(buf))!=-1) {fileOutputStream.write(buf,0,readLen); }System.out.println("拷贝成功!");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {if(fileInputStream!=null) {fileInputStream.close();}if(fileOutputStream!=null) {fileOutputStream.close();}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}

BufferedReader

package com.xxb.FileRead_;import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;public class BufferedReader_ {public static void main(String[] args) throws IOException {String filePath = "d:/new2.txt";BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));String line;while((line=bufferedReader.readLine())!=null) {System.out.println(line);}bufferedReader.close();}}

BufferedWrter

package com.xxb.FileRead_;import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;public class BufferedWriter_ {public static void main(String[] args) throws IOException {String filePath = "d:/ok.txt";//要创建文件的路径BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(filePath));bufferedWriter.write("你好");bufferedWriter.newLine();//换行bufferedWriter.write("我的大学");bufferedWriter.close();//关闭外部的就行 不用关闭FileWriter}}

BufferedCopy

//BufferedCopy 无法处理二进制文件(视频、音频、doc、pdf等等)package com.xxb.FileRead_;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class BufferedCopy_ {public static void main(String[] args) {String srcFilePath = "d:/ok.txt";String destFilePath = "d:/ok1.txt";BufferedReader br = null;BufferedWriter bw = null;String line;try {br = new BufferedReader(new FileReader(srcFilePath));bw = new BufferedWriter(new FileWriter(destFilePath));while((line=br.readLine())!=null) {bw.write(line);}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {if(br != null) {br.close();}if(bw != null) {bw.close();}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}

字节处理流拷贝文件

//可以读取二进制文件package com.xxb.FileRead_;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class Buffered_ {public static void main(String[] args) {String srcFilePath = "d:/ok.txt";String destFilePath = "d:/ok3.txt";BufferedInputStream bis = null;BufferedOutputStream bos = null;try {bis = new BufferedInputStream(new FileInputStream(srcFilePath));bos = new BufferedOutputStream(new FileOutputStream(destFilePath));byte[] buf = new byte[1024];int readLen = 0;while((readLen=bis.read(buf))!=-1) {bos.write(buf, 0, readLen);}System.out.println("拷贝完成!");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {if(bis!=null) {bis.close();}if(bos!=null) {bos.close();}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}