一,java字符输入流Reader讲解
:讲解Reader相关介绍及其⼦子类
Reader是输⼊入字符流的⽗父类,它是⼀一个抽象类, 部分库不不推荐使⽤用Reader/Writer,所以简单了了解
即可
package chapter12;
import java.io.*;
public class ReaderTest {
public static void main(String [] args) throws Exception {
test2();
}
public static void test1()throws Exception{
String dir="C:\\Users\\联想\\Desktop\\test\\1.txt";
File file=new File(dir);
Reader input = new FileReader(file);
int ch;
while((ch=input.read())!=-1){
System.out.print((char)ch);
}
input.close();
}
public static void test2()throws Exception{
String dir="C:\\Users\\联想\\Desktop\\test\\1.txt";
File file=new File(dir);
Reader input = new FileReader(file);
int ch;
char [] buf= new char[1024];
while((ch=input.read(buf))!=-1){
System.out.print(new String(buf,0,ch));
}
input.close();
}
}
二,java字符输出流Writer讲解
:讲解Writer相关介绍及其⼦子类
Writer是输出字符流的⽗父类,它是⼀一个抽象类
实战
package chapter12;
import javax.imageio.IIOException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
public class WriterTest {
public static void main(String [] args)throws Exception {
test2();
}
public static void test2()throws Exception {
String dir="C:\\Users\\联想\\Desktop\\test\\2.txt";
Writer writer = new FileWriter(dir,true);
writer.write(23567);
writer.write(28404);
writer.write(35838);
writer.write(22530);
writer.write("23567");
writer.flush();
writer.close();
}
public static void test1()throws Exception {
String dir="C:\\Users\\联想\\Desktop\\test\\2.txt";
Writer writer = new FileWriter(dir);
writer.write(23567);
writer.write(28404);
writer.write(35838);
writer.write(22530);
writer.write("23567");
writer.flush();
writer.close();
}
}
三,Buffered Reader字符输⼊入缓冲流实战
package chapter12;
import java.io.BufferedReader;
import java.io.FileReader;
public class BufferReaderTest {
public static void main(String [] args)throws Exception{
test1("C:\\Users\\联想\\Desktop\\test\\1.txt");
}
public static void test2(String path)throws Exception{
BufferedReader reader= new BufferedReader(new FileReader(path));
if(!reader.ready()){
System.out.println("文件流暂时无法读取");
return;
}
String str="";
while((str=reader.readLine())!=null){
System.out.println(str);
}
}
public static void test1(String path)throws Exception{
BufferedReader reader= new BufferedReader(new FileReader(path));
if(!reader.ready()){
System.out.println("文件流暂时无法读取");
return;
}
int size;
char [] cbuf=new char[1024];
while((size=reader.read(cbuf,0,cbuf.length))!=-1){
System.out.println(new String(cbuf,0,size));
}
}
}
四,BufferedWriter字符输出缓冲流实战
实战
package chapter12;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
public class BufferWriterTest {
public static void main(String [] args)throws Exception{
test1("C:\\Users\\联想\\Desktop\\test\\8.txt");
}
public static void test1(String path)throws Exception{
BufferedWriter writer=new BufferedWriter(new FileWriter(path));
char ch='小';
writer.write(ch);
String other= "小弟课堂";
//写入一个字符数组
writer.write(other.toCharArray(),0,other.length());
writer.newLine();
String newLine="学习java课程";
writer.write(newLine);
writer.close();
}
}
五,字符流和字节流的桥梁梁InputStreamReader
package chapter12;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
public class InputStreamReaderTest {
public static void main(String [] args)throws Exception{
test1("C:\\Users\\联想\\Desktop\\test\\8.txt");
}
public static void test1(String path)throws Exception{
//读取字节流
InputStream in = new FileInputStream(path);
// InputStreamReader isr = new InputStreamReader(in,"GBK");
InputStreamReader isr = new InputStreamReader(in);
BufferedReader reader = new BufferedReader(isr);
// String line;
// while((line=reader.readLine())!=null){
// System.out.println(line);
// }
// isr.close();
// reader.close();
int size;
char [] ch=new char[1024];
while((size=reader.read(ch,0,ch.length))!=-1){
System.out.println(new String(ch,0,size));
}
isr.close();
reader.close();
}
}
六,字符流和字节流的桥梁梁OutputStreamWriter
package chapter12;
import java.io.*;
public class OutputStreamWriterTest {
public static void main(String [] args)throws Exception{
test1("C:\\Users\\联想\\Desktop\\test\\8.txt");
test2("C:\\Users\\联想\\Desktop\\test\\8.txt");
}
public static void test1(String path)throws Exception{
OutputStream out=new FileOutputStream(path);
OutputStreamWriter osr= new OutputStreamWriter(out,"GBK");
BufferedWriter bufw=new BufferedWriter(osr);
String srt="环保一百个啊说的话覅偶怕蓄电dsaf" ;
bufw.write(srt);
bufw.newLine();
bufw.write("学习java课程");
bufw.flush();
bufw.close();
}
public static void test2(String path)throws Exception{
InputStream inputStream= new FileInputStream(path);
InputStreamReader isr=new InputStreamReader(inputStream,"GBK");
BufferedReader bufr=new BufferedReader(isr);
String line;
while((line=bufr.readLine())!=null){
System.out.println(line);
}
isr.close();
bufr.close();
}
}
七,JavaIO流内部异常处理理
写法⼀一(以前内容)
写法⼆二(JDK6之前,⼤大部分⼈人还停留留这个写法)
package chapter12;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class TryCatchTest {
public static void main(String [] args){
BufferedInputStream bis=null;
BufferedOutputStream bos=null;
try{
FileInputStream fis=new FileInputStream("C:\\Users\\联想\\Desktop\\test\\1.txt");
bis=new BufferedInputStream(fis);
FileOutputStream fos=new FileOutputStream("C:\\Users\\联想\\Desktop\\test\\111.txt");
bos=new BufferedOutputStream(fos);
int size;
byte [] buf=new byte[1024];
while((size=bis.read(buf))!=0){
bos.write(buf,0,size);
}
}catch(Exception e){
e.printStackTrace();
}finally{
if( bis!=null){
try{
bis.close();
}catch(Exception e){
e.printStackTrace();
}finally{
if(bos!=null){
try{
bos.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
}
}
}
八,新版JDK try-with-resource处理理IO异常
public static void test4() {
try (FileInputStream fis = new FileInputStream("xdclass.txt");
BufferedInputStream bis = new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream("copy.txt");
BufferedOutputStream bos = new BufferedOutputStream(fos);
) {
int size;
byte[] buf = new byte[1024];
while ((size = bis.read(buf)) != -1) {
bos.write(buf, 0, size);
}
} catch (Exception e) {
e.printStackTrace();
}
}