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();} }