package IObasics;
import java.io.FileWriter; import java.io.IOException; /*IO流 * 通过数据流、序列化和文件系统提供系统输入和输出。 * 文件上传,复制文件,下载文件 * 输出流: * java.io 类 FileWriter 构造方法详细信息 : public FileWriter(String fileName) throws IOException根据给定的文件名构造一个 FileWriter 对象。 参数: fileName - 一个字符串,表示与系统有关的文件名。 抛出: IOException - 如果指定文件存在,但它是一个目录,而不是一个常规文件;或者该文件不存在,但无法创建它;抑或因为其他某些原因而无法打开它 public FileWriter(String fileName, boolean append) throws IOException根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。 参数: fileName - 一个字符串,表示与系统有关的文件名。 append - 一个 boolean 值,如果为 true,则将数据写入文件末尾处,而不是写入文件开始处。 抛出: IOException - 如果指定文件存在,但它是一个目录,而不是一个常规文件;或者该文件不存在,但无法创建它;抑或因为其他某些原因而无法打开它 * * * 方法: 从类 java.io.OutputStreamWriter 继承的方法 void close() 关闭此流,但要先刷新它。 void flush() 刷新该流的缓冲。 String getEncoding() 返回此流使用的字符编码的名称。 void write(char[] cbuf, int off, int len) 写入字符数组的某一部分。 void write(int c) 写入单个字符。 void write(String str, int off, int len) 写入字符串的某一部分。 从类 java.io.Writer 继承的方法 void write(char[] cbuf) 写入字符数组。 void write(int c) 写入单个字符。 append, append, append, write, write 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait *输入流: * **/ /*需求: 在文件中写数据 写数据-输出流 */ public class IO_basics_filerwriter { public static void main(String[] args) throws IOException { FileWriter fw=new FileWriter("d:\\test.txt"); /*输出流对象做了那些事情: 1.调用系统资源创建了一个文件 2.创建输出流对象 3.把输出流对象指向文件*/ /*操作数据的方法 * close() 刷新缓冲区 流对象还可以使用 * flush() 先刷新缓冲区,然后通知系统释放资源 流对象不可以使用 * * * * */ fw.write("IO流练习"); fw.write("java"); fw.flush();/*刷新内存缓冲区*/ fw.close();/*释放资源*/ } }
package IObasics; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; /*java.io * 字符缓冲流类 * BufferedWriter:对字符得高效输出 * BufferReader:对字符得高效输入 * * * */ public class IO_basics_bufferwriter { public static void main(String[] args) throws IOException { /* BufferedWriter bw=new BufferedWriter(new FileWriter("fw.txt")); bw.write("hello"); BufferedReader br=new BufferedReader(new FileReader("fr.txt")); int ch; while((ch=br.read())!=-1){ System.out.println((char)ch); } bw.close(); br.close();*/ /*copy_one("fr.txt","fw.txt");*/ /*newline();*/ /*readline();*/ /*copy_two("fr.txt","fw.txt");*/ collection_to_txt("fr.txt"); } /*文本复制方法*/ public static void copy_one(String filename_one,String filename_two) throws IOException { BufferedReader br=new BufferedReader(new FileReader(filename_one)); BufferedWriter bw=new BufferedWriter(new FileWriter(filename_two)); int ch; while((ch=br.read())!=-1) { bw.write(ch); } bw.close(); br.close(); } /*字符缓冲流的特殊功能 * newline():newline 是相当于换行符 windows的换行符是 \r\n mac\n linux\r*/ public static void newline() throws IOException { BufferedWriter bw=new BufferedWriter(new FileWriter("fw.txt")); for (int i = 0; i <10; i++) { bw.write("hello wolrd"+i); bw.newLine(); } bw.close(); } /*readline():redaline 一次读取一行 但是不读取换行符*/ public static void readline() throws IOException { BufferedReader br=new BufferedReader(new FileReader("fw.txt")); String line; while((line=br.readLine())!=null) { System.out.println(line); } br.close(); } /*利用特殊功能复制文本文件*/ public static void copy_two(String filename_one,String filename_two) throws IOException { BufferedReader br=new BufferedReader(new FileReader(filename_one)); BufferedWriter bw=new BufferedWriter(new FileWriter(filename_two)); String line; while((line=br.readLine())!=null) { bw.write(line); bw.newLine(); } bw.close(); br.close(); } /*把集合中的数据写到文本文件*/ public static void collection_to_txt(String filename_two) throws IOException { ArrayList<String> ar=new ArrayList<String>(); for (int i = 0; i < 10; i++) { ar.add("a"); } BufferedWriter bw=new BufferedWriter(new FileWriter(filename_two)); for (int i = 0; i < ar.size(); i++) { String arr=String.valueOf(ar.get(i)); bw.write(arr); } bw.close(); } }