package com.zhp.method.io;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
public class _BufferedStream {
public static void main(String[] args) {
File file = new File("F:\\eclipse[重要]\\缓冲流的测试.txt");
String contain = "姑苏城外寒山寺,夜半钟声到客船。";
_Writer(file, contain);
System.out.println(_Read(file));
_File.delete(file.getAbsolutePath());
}
/** BufferedReader 缓冲读取流 */
public static String _Read(File file) {
String s = "";
try {
/* BufferedReader不仅可以套在FileReader外面,还可以套在InputStreamReader等Reader类外面 */
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String tem = null;
while ((tem = br.readLine()) != null) {
s += tem;
}
fr.close();
br.close();
} catch (Exception e) {
}
return s;
}
/** BufferedWriter 缓冲写入流 */
public static void _Writer(File file, String contain) {
// 如果文件不存在,创建文件。
if (!file.exists()) {
System.out.println("要写入的文件不存在,即将创建...");
try {
_File.creatFolder(file.getParent());
_File.creatFile(file.getAbsolutePath());
} catch (Exception e) {
System.out.println(" 创建文件失败!");
}
}
// 开始写入到文件
try {
FileWriter fw = new FileWriter(file, true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(contain);
bw.newLine();
bw.flush();
bw.close();
fw.close();
} catch (Exception e) {
System.out.println("写入到文件失败!");
}
}
}
package com.zhp.method.io;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/** 文件字节流 */
public class _ByteStream {
public static void main(String[] args) {
String contain = "This is a test sentence!\n";
String fileName = "F:\\eclipse[重要]\\20140310_FileputStreamTest.txt";
_File.creatFile(fileName);// 创建文件
_FileOutputStream(fileName, contain);// 输出语句到文件
byte[] get = _FileInputStream(fileName);// 获得文件内容
showByte(get);// 输出获得的内容
_File.delete(fileName);// 删除文件
}
/** FileInputStream 文件字节流获得文件内容 */
public static byte[] _FileInputStream(String fileName) {
File file = new File(fileName);
byte[] tem = new byte[(int) file.length()];
try {
FileInputStream fis = new FileInputStream(file);
fis.read(tem);
fis.close();
System.out.println("读取文件 " + file.getName() + " 成功!");
} catch (Exception e) {
}
return tem;
}
/** FileOutputStream 文件字节流添加到开始。 */
public static void _FileOutputStream(String fileName, String contain) {
byte[] b = contain.getBytes();
try {
File file = new File(fileName);
FileOutputStream fos = new FileOutputStream(file, true);
fos.write(b);
fos.close();
System.out.println("输出到文件 " + file.getName() + " 成功!");
} catch (Exception e) {
}
}
/** 输出一个byte[] 的内容 */
private static void showByte(byte[] b) {
for (byte tem : b) {
System.out.print((char) tem);
}
}
}
package com.zhp.method.io;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
public class _CharacterStream {
public static void main(String[] args) {
File file = new File("F:\\eclipse[重要]\\FileReader和FileWriter的测试.txt");
String contain = "月落乌啼霜满天\n江枫渔火对愁眠";
System.out.println("字符串长度:" + contain.length());
_FileWriter(file, contain);
System.out.println("读取文件 " + file.getName() + " 为:");
System.out.println(_FileReader(file));
_File.delete(file.getAbsolutePath());
explain();
}
/** FileReader 文件字符流读取文件 */
public static String _FileReader(File file) {
if( !file.exists()){
System.out.println("没有找到要读取的文件。");
return null;
}
System.out.println("文件长度为:" + file.length());
char[] tem = new char[(int) file.length()];
try {
FileReader fr = new FileReader(file);
fr.read(tem);
fr.close();
} catch (Exception e) {
}
return new String(tem);
}
/** FileWriter 文件字符流写入文件, 不会刷新 */
public static void _FileWriter(File file, String contain) {
if (!file.exists()) {
System.out.println("要写入的文件不存在,即将创建...");
try {
_File.creatFolder(file.getParent());
_File.creatFile(file.getAbsolutePath());
} catch (Exception e) {
System.out.println(" 创建文件失败!");
}
}
try {
FileWriter fw = new FileWriter(file, true);//附加,为true时不刷新,false刷新。
fw.write(contain);
fw.flush();
fw.close();
System.out.println("写入文件完成!");
} catch (Exception e) {
}
}
/** 注释 */
private static void explain(){
System.out.println("---------------------");
System.out.println("在file.length() 中,一个汉字的长度是2");
System.out.println("在char[] 、String 中,一个汉字的长度是1");
System.out.println("---------------------");
}
}
package com.zhp.method.io;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
public class _File {
public static void main(String[] args) {
creatFile("F:\\eclipse[重要]\\20140310_FileTest.txt");
pause();
delete("F:\\eclipse[重要]\\20140310_FileTest.txt");
creatFolder("F:\\eclipse[重要]\\testFolder");
pause();
delete("F:\\eclipse[重要]\\testFolder");
startExe("C:\\Windows\\Notepad.exe");
}
/** 创建文件 */
public static void creatFile(String fileName) {
File file = new File(fileName);
try {
file.createNewFile();// must surround by try-catch;
System.out.println("_File:创建文件 " + file.getName() + " 成功!");
} catch (IOException e) {
}
}
/** 删除文件 */
public static void delete(String fileName) {
File file = new File(fileName);
file.delete();
System.out.println("_File:文件已删除");
}
/** 暂停 */
public static void pause() {
System.out.println("Input anything to continue.");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
@SuppressWarnings("unused")
String c = br.readLine();
br.reset();
br.close();
} catch (Exception e) {
}
}
/** 创建目录 */
public static void creatFolder(String menuName) {
File file = new File(menuName);
file.mkdirs();
System.out.println("_File:创建目录 " + menuName + " 成功!");
}
/** 运行可执行文件 */
public static void startExe(String appName) {
try {
Runtime r = Runtime.getRuntime();
File file = new File(appName);
r.exec(file.getAbsolutePath());
} catch (Exception e) {
System.out.println("_File:运行可执行文件时出错!");
}
}
}
package com.zhp.method.io;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Scanner;
public class _Other {
public static void main(String[] args) {
System.out.println("由用户自己输入的输入流:");
System.out.println("-请输入地址(随便输)");
_InputStreamReader1();
System.out.println("----------------------");
System.out.println("由文件读取的输入流");
System.out.println("-从文件中读取的内容是:");
_InputStreamReader2();
}
/** PrintWriter的错误系统不会报告给用户,但仍需要 surround with try / catch */
public static void _PrinterWriter(){
String s = null;
Scanner in = new Scanner(System.in);//输入一个文件地址,这里率随便输入即可
s = in.next();
try {
PrintWriter pw = new PrintWriter( s );
pw.close();
} catch (FileNotFoundException e) {
System.out.println("输入的文件地址有错!");//无论是否有错,这句话都不会输出来。
}
in.close();
}
/** 由用户自己输入的输入流 */
public static void _InputStreamReader1(){
try {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
System.out.println( br.readLine());
} catch (Exception e) {
}
}
/** 由文件读取的输入流 */
public static void _InputStreamReader2(){
try {
FileInputStream fis =
new FileInputStream("F:\\eclipse[重要]\\Other.txt");
InputStreamReader isr =
new InputStreamReader(fis);
BufferedReader br =
new BufferedReader(isr);
String s = null;
while((s = br.readLine()) != null){
System.out.println(s);
}
br.close();
} catch (Exception e) {
System.out.println("有错!");
}
}
}