JavaIO常用字节流和字符流
2015-03-13 13:43
441 查看
之前感觉java io很复杂,今天有机会总结下常用的java io类和使用方法。
对于文件内容的操作主要分为两大类
分别是:
字符流
字节流
其中,字符流有两个抽象类:Writer Reader
其对应子类FileWriter和FileReader可实现文件的读写操作
BufferedWriter和BufferedReader能够提供缓冲区功能,用以提高效率
同样,字节流也有两个抽象类:InputStream OutputStream
其对应子类有FileInputStream和FileOutputStream实现文件读写
BufferedInputStream和BufferedOutputStream提供缓冲区功能
下面是使用代码,为了简单直观,没有处理异常:
这下java读取写入文件不用愁了
对于文件内容的操作主要分为两大类
分别是:
字符流
字节流
其中,字符流有两个抽象类:Writer Reader
其对应子类FileWriter和FileReader可实现文件的读写操作
BufferedWriter和BufferedReader能够提供缓冲区功能,用以提高效率
同样,字节流也有两个抽象类:InputStream OutputStream
其对应子类有FileInputStream和FileOutputStream实现文件读写
BufferedInputStream和BufferedOutputStream提供缓冲区功能
下面是使用代码,为了简单直观,没有处理异常:
package com.star.learning.javaio; import java.io.*; /** * Created by wangchao on 15-3-13. */ public class JavaIO { public static void main(String[] args) throws Exception { File inputFile = new File("inputFile"); File outputFile = new File("outputFile"); // fileReaderAndFileWriter(inputFile, outputFile); // bufferedReaderAndBufferedWriter(inputFile, outputFile); // fileInputStreamAndFileOutputStream(inputFile, outputFile); bufferedInputStreamAndBufferedOutputStream(inputFile, outputFile); } /** * 字符流,不带缓冲区 * * @param inputFile * @param outputFile * @throws IOException */ public static void fileReaderAndFileWriter(File inputFile, File outputFile) throws IOException { FileReader fileReader = new FileReader(inputFile); // 如果需要追加数据,而不是覆盖,则使用FileWriter(path,true)构造方法 FileWriter fileWriter = new FileWriter(outputFile); int temp = 0; while ((temp = fileReader.read()) != -1) { System.out.print((char) temp); fileWriter.write((char) temp); } fileReader.close(); fileWriter.close(); } /** * 字符流,带缓冲区 * * @param inputFile * @param outputFile * @throws IOException */ public static void bufferedReaderAndBufferedWriter(File inputFile, File outputFile) throws IOException { BufferedReader bufferedReader = new BufferedReader(new FileReader(inputFile)); BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(outputFile)); String line = ""; while ((line = bufferedReader.readLine()) != null) { bufferedWriter.write(line + "\n"); System.out.println(line); } bufferedReader.close(); bufferedWriter.close(); } /** * 字节流,不带缓冲区 * * @param inputFile * @param outputFile * @throws IOException */ public static void fileInputStreamAndFileOutputStream(File inputFile, File outputFile) throws IOException { FileInputStream fileInputStream = new FileInputStream(inputFile); // 如果需要追加数据,而不是覆盖,则使用FileOutputStream(path,true)构造方法 FileOutputStream fileOutputStream = new FileOutputStream(outputFile); int temp = 0; while ((temp = fileInputStream.read()) != -1) { System.out.print((char) temp); fileOutputStream.write((char) temp); } fileInputStream.close(); fileOutputStream.close(); } /** * 字节流,带缓冲区 * * @param inputFile * @param outputFile * @throws IOException */ public static void bufferedInputStreamAndBufferedOutputStream(File inputFile, File outputFile) throws IOException { BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(inputFile)); BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(outputFile)); int temp = 0; byte[] buf = new byte[1024]; while ((temp = bufferedInputStream.read(buf)) != -1) { System.out.print(buf); bufferedOutputStream.write(buf, 0, temp); } bufferedInputStream.close(); bufferedOutputStream.close(); } }
这下java读取写入文件不用愁了
相关文章推荐
- Java IO中字节流和字符流的区别
- java 基础之 IO(字节流和字符流)
- java IO之字节流与字符流
- Java IO--字节流与字符流
- Java_io_键盘录入 字符流和字节流的转化
- Java IO学习笔记(三):字节流与字符流
- java 基础之 IO(字节流和字符流)
- JavaIO操作(1)字节流和字符流-2
- java.io 对字节流和字符流的讨论[zz]
- Java IO--字节流与字符流OutputStream/InputStream/Writer/Reader
- Java IO学习笔记(三):字节流与字符流
- Java IO学习1:字节流与字符流
- java IO中字节流与字符流有什么区别
- Java读写Properties文件及JavaIO中字节流和字符的转换
- java IO(File类、字节流与字符流、字节字符转换流)
- java IO操作:字节流与字符流区别
- java.io 对字节流和字符流的讨论
- Java IO中字节流和字符流的区别
- java io字符流和字节流实例
- Java读写Properties文件及JavaIO中字节流和字符的转换