Java基础学习-IO流

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

猜你喜欢

转载自www.cnblogs.com/bai-boy/p/10300971.html