<span style="font-size:14px;">package cn.sheng.IO;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.annotation.processing.Filer;
public class IO {
/**
* 能够用记事本打开的,用字符流;
* 否则用字节流!
*
*
* 字节流:输出流:outputstream 写入数据 FileOutPutStream
* 输入流:inputstream 读取数据
*
* 字符流:输出流:writer(抽象类,不能被实例化) 子类:Filewriter 写入数据
* 输入流:reader(抽象类,不能被实例化) 子类:Filewriter 读取数据
*
*
* IO流操作必须 释放资源!
*
*/
/*
* Filewriter : 有文件就覆盖值,没文件就创建文件!
* 注意的是:window 下的换行符是 \r\n
* linux 下的换行符是 \n
* mac 下的换行符是 \r
*/
//注意:字符输出流写入数据需要强转,字节输出流写入数据不需要强转!
public static void main(String[] args) throws IOException {
/**
* 字符输出流!
*/
//写入文本用字符流输出:FileWriter
//有写true是追加写入!
//标准处理异常方式!
FileWriter writer =null;
try {
writer = new FileWriter("f:/test/sheng.txt",true);
writer.write("nihama"+"\r\n");
writer.write("love"+"\r\n");
writer.write("hahaha"+"\r\n");
writer.write((char)97+"\r\n");
System.out.println("sssss");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("数据写入失败!");
}finally{
if(writer != null){
try {
writer.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 字符输入流!
*/
//读取文本用字符流输入:FileReader
//这种方法的读取方法是一个个字符读取,效率较低!
//记住口诀:读取,赋值,判断,输出!
FileReader reader = new FileReader("f:/test/sheng.txt");
int ch =0;
while((ch = reader.read()) != -1){
//(在控制台输出需要强转!如果在文件A读取数据,写入文件B则不需要强转!)
System.out.print((char)ch);
}
reader.close();
/**
* 字符输入流! 记住:字符输入流用
* 字符型数组:char数组!
* String.valueOf(chs,0,len);
*/
//这种方法的读取方法是将字符放在数组里输出,效率较高!记住!
FileReader reader2 = new FileReader("f:/test/sheng.txt");
char[] chs = new char[1024];
int len = 0;
while((len = reader2.read(chs)) != -1){
System.out.println(String.valueOf(chs,0,len));
}
reader2.close();
//copy文件!
/**
* 字节输出流!注意要转换为字节数组getByte()!
*/
FileOutputStream fos = new FileOutputStream("f:/test/zai.txt");
fos.write("hehe".getBytes());
fos.close();
/**
* 字节输入流! 读取、赋值、判断、输出!
* 记住:字节输入流用
* 字节型数组:byte数组!
* new String(by,0,len);
*
*/
FileInputStream input = new FileInputStream("f:/test/zai.txt");
byte[] by = new byte[1024];
int leng =0;
while((leng =input.read(by))!= -1){
System.out.println(new String(by,0,leng));
}
input.close();
/**
* 读取、赋值、判断、输出!
* copy:文本、图片~~~~~~~~
*/
FileInputStream input1 = new FileInputStream("f:/test/bg.jpg");
FileOutputStream out1 = new FileOutputStream("f:/test/zaicopy.jpg");
byte[] byte1 = new byte[1024];
int len1= 0;
while((len1 = input1.read(byte1)) != -1){
out1.write(byte1, 0, len1);
}
out1.close();
input1.close();
}
}
</span>