java里如何使用输入流和输出流实现读取本地文件里内容和写出到本地文件里

  不多说,直接上干货!

第一种方法

  PWDemo.java

package zhouls.bigdata.DataFeatureSelection.filter;


import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

/**
 * PW处理其他流
 * @author adminitartor
 *
 */
public class PWDemo {
    public static void main(String[] args) throws IOException {
        /*
         * 向文件pw1.txt中写出内容
         */
        FileOutputStream fos
            = new FileOutputStream("pw1.txt");
        /*
         * PrintWriter构造方法传入字节流的话,
         * 不能指定字符集。
         */
//        PrintWriter pw
//            = new PrintWriter(fos);
        /*
         * 若希望指定字符集,需要在中间使用 
         * OutputStreamWriter
         */
        OutputStreamWriter osw
            = new OutputStreamWriter(fos,"GBK");
        PrintWriter pw
            = new PrintWriter(osw);
        
        pw.println("啦啦啦");
        pw.println("哈哈哈");
        System.out.println("写出完毕!");
        pw.close();
    }
}

/*
* 接下来是输出流
*/
    FileOutputStream fos = new FileOutputStream("F:\datamode\SnortEveryAttributesSimData.txt"); 
    OutputStreamWriter osw = new OutputStreamWriter(fos,"GBK");
    PrintWriter pw = new PrintWriter(osw);
    for(int i=0;i<sdms.size();i++){
    pw.println("按时间升序且计算每个属性相似度后的第"+i+"条数据是"+""+sdms.get(i));
}
System.out.println("写出完毕!");
pw.close();

第二种方法

  字符流FileWriter

 

 FileWriterDemo.java(涉及到换行和续写)

package zhouls.bigdata.DataFeatureSelection.test;

import java.io.FileWriter;
import java.io.IOException;

//需求:将一些文字存储到硬盘一个文件中。

public class FileWriterDemo {
    private static final String LINE_SEPARATOR = System.getProperty("line.separator");
    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
        //创建一个可以往文件中写入字符数据的字符输出流对象。
        /*
         * 既然是往一个文件中写入文字数据,那么在创建对象时,就必须明确该文件(用于存储数据的目的地)。
         * 如果文件不存在,则会自动创建。
         * 如果文件存在,则会被覆盖。
      * 如果构造函数中加入true,可以实现对文件进行续写         */
        FileWriter fw = new FileWriter("demo.txt",true);
        /*
         * 调用Writer对象中的write(string)方法,写入数据。 
         * 其实数据写入到临时存储缓冲区中。
         */
        fw.write("abcde"+LINE_SEPARATOR+"hahaha");//LINE_SEPARATOR是换行符
        fw.write("xixi");
        
        //进行刷新,将数据直接写到目的地中。    注意:flush可以用多次。
        fw.flush();
        
        //关闭流,关闭资源。在关闭前会先调用flush刷新缓冲中的数据到目的地。        注意:close可以用多次。
        fw.close();
    }
}
原文地址:https://www.cnblogs.com/zlslch/p/7552464.html