java中如何实现字符流的写入写出?

如题所述

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class InputStreamReaderTest
{
public static void main(String[] args)
{
    try
    {
File file=new File("F:\\io\\abc.txt");
FileOutputStream fos=new FileOutputStream(file);
OutputStreamWriter osw=new OutputStreamWriter(fos);
osw.write('大');
osw.write('家');
osw.write('好');
                        osw.close();
FileInputStream fis=new FileInputStream(file);
InputStreamReader isr=new InputStreamReader(fis);
System.out.println((char)isr.read());
System.out.println((char)isr.read());
System.out.println((char)isr.read());
isr.close();
    }
    catch (FileNotFoundException e)
    {
System.out.println("操作的文件不存在");
    }
catch(IOException e)
{
System.out.println("发生IO操作异常");
}
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-09

  java中实现字符流的写入写出使用BufferedReader和BufferedWriter来实现,具体事例代码如下:

public class FileTest {
    public static void main(String[] args)   {
        File  file=new File("C:\\Users\\hp\\Desktop\\a.txt");
        BufferedReader read=null;
        BufferedWriter writer=null;
        try {
            writer=new BufferedWriter(new  FileWriter("C:\\Users\\hp\\Desktop\\b.txt"));
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        try {
            read=new BufferedReader(new  FileReader(file));
            String tempString = null;
            while((tempString=read.readLine())!=null){
                writer.append(tempString);
                writer.newLine();//换行
                writer.flush();//需要及时清掉流的缓冲区,万一文件过大就有可能无法写入了
            }
            read.close();
            writer.close();
            System.out.println("文件写入完成...");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

  这样就实现了指定读取一个目录下的文件的内容写入到指定目录下的文件中。

相似回答