InputStream和OutputStream字节流操作File文件
File file = new File("C://Users//fchen//Desktop//EPL4398046700991_大报文.txt");
InputStream inputStream = new FileInputStream(file);
byte[] bytes = new byte[2048];
StringBuffer sb = new StringBuffer();
int len = 0;
while ((len = inputStream.read(bytes)) != -1){
sb.append(new String(bytes, 0, len));
}
System.out.println(sb.toString());
inputStream.close();
OutputStream outputStream = new FileOutputStream("C://Users//fchen//Desktop//中报文.txt");
IOUtils.write(sb.toString().getBytes(), outputStream);
outputStream.flush();
outputStream.close();
BufferedInputStream和BufferedOutputStream字节流操作File文件(推荐)
File file = new File("C://Users//fchen//Desktop//EPL4398046700991_大报文.txt");
InputStream inputStream = new BufferedInputStream(new FileInputStream(file));
byte[] bytes = new byte[2048];
StringBuffer sb = new StringBuffer();
int len = 0;
while ((len = inputStream.read(bytes)) != -1){
sb.append(new String(bytes, 0, len));
}
System.out.println(sb.toString());
inputStream.close();
OutputStream outputStream = new BufferedOutputStream(new FileOutputStream("C://Users//fchen//Desktop//中报文.txt"));
IOUtils.write(sb.toString().getBytes(), outputStream);
outputStream.flush();
outputStream.close();
InputStreamReader和outputStreamWriter字符流操作File
File file = new File("C://Users//fchen//Desktop//EPL4398046700991_大报文.txt");
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(file), "UTF-8");
char[] chars = new char[2048];
int len = 0;
StringBuffer sb = new StringBuffer();
while ((len = inputStreamReader.read(chars)) != -1) {
sb.append(new String(chars, 0, len));
}
System.out.println(sb.toString());
inputStreamReader.close();
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream("C://Users//fchen//Desktop//1报文.txt"), "utf-8");
outputStreamWriter.write(sb.toString().toCharArray());
outputStreamWriter.flush();
outputStreamWriter.close();
BufferedReader和BufferedWriter字符流操作File(推荐)
File file = new File("C://Users//fchen//Desktop//EPL4398046700991_大报文.txt");
BufferedReader inputStreamReader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
char[] chars = new char[2048];
int len = 0;
StringBuffer sb = new StringBuffer();
while ((len = inputStreamReader.read(chars)) != -1) {
sb.append(new String(chars, 0, len));
}
System.out.println(sb.toString());
inputStreamReader.close();
BufferedWriter outputStreamWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("C://Users//fchen//Desktop//1报文.txt"), "utf-8"));
IOUtils.write(sb.toString().toCharArray(), outputStreamWriter);
//outputStreamWriter.write(sb.toString().toCharArray());
outputStreamWriter.flush();
outputStreamWriter.close();
Java IO 的一般使用原则 :
一、按数据来源(去向)分类:
- 1 、是文件: FileInputStream, FileOutputStream, ( 字节流 )FileReader,
FileWriter( 字符 ) - 2 、是 byte[] : ByteArrayInputStream, ByteArrayOutputStream( 字节流 )
- 3 、是 Char[]: CharArrayReader, CharArrayWriter( 字符流 )
- 4 、是 String: StringBufferInputStream, StringBufferOuputStream ( 字节流
)StringReader, StringWriter( 字符流 ) - 5 、网络数据流: InputStream, OutputStream,( 字节流 ) Reader, Writer( 字符流 )
二、按是否格式化输出分:
- 1 、要格式化输出: PrintStream, PrintWriter
三、按是否要缓冲分:
- 1 、要缓冲: BufferedInputStream, BufferedOutputStream,( 字节流 )
BufferedReader, BufferedWriter( 字符流 )
四、按数据格式分:
- 1 、二进制格式(只要不能确定是纯文本的) : InputStream, OutputStream 及其所有带 Stream 结束的子类
- 2 、纯文本格式(含纯英文与汉字或其他编码方式); Reader, Writer 及其所有带 Reader, Writer 的子类
五、按输入输出分:
- 1 、输入: Reader, InputStream 类型的子类
- 2 、输出: Writer, OutputStream 类型的子类
六、特殊需要:
- 1 、从 Stream 到 Reader,Writer 的转换类: InputStreamReader,
OutputStreamWriter - 2 、对象输入输出: ObjectInputStream, ObjectOutputStream
- 3 、进程间通信: PipeInputStream, PipeOutputStream, PipeReader, PipeWriter
- 4 、合并输入: SequenceInputStream
- 5 、更特殊的需要: PushbackInputStream, PushbackReader,
LineNumberInputStream, LineNumberReader