java I/O流总结

*Java字符流总结:*


/*
名称:reader and writer
说明:这是输入流的抽象基类,它也是个字符流。所谓字符流就是系统会在字节流的基础上按照字符流所对应字节的长度进行提取。即在java中字符用两个字节表示,所以每次系统就会提取两个字节作为一个字符。在这里面用到了inputstreamreader相当于字节流变成字符流的中间的一个桥梁。对于此处的writer不知道为什么不能接收system.out的参数,即不能向屏幕中输出字符。对此不是很理解。

*/

//

package ByteStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;


public class J_ReaderAndWirte
{
    public void TestReader(Reader reader)
    {
        try
        {
            int c  ;
            char []b =new char[10];
            reader.read(b);
            System.out.println(b);
            reader.close();



        } catch (IOException e)
        {
            e.printStackTrace();
        }
    }

    public static void main(String args[])
    {

        J_ReadFromConsole re =new  J_ReadFromConsole();
        re.SCanner();

    }
}


/*
* 名称:bufferedreader and bufferedwriter
* 说明:这两个都是字符流中的缓冲流,一般用法是可以用文件字符流作为参数,用于处理文件操作。和以前的一样,它的主要作用还是可以提高效率,避免多次进行I/O操作。同时bufferedreader还提供了readline();bufferedwriter提供了写入newline()方法。
*
*
*/



//////////////////////////
package ByteStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class J_BufferedReaderAndWriter
{
    public void TestBufferedReaderAndWriter()
    {
        try
        {
            BufferedWriter bufferedWriter= new BufferedWriter(new FileWriter("test.txt"));
            bufferedWriter.write("有志者,事竟成!");
            bufferedWriter.newLine();    //写入行分割符
            bufferedWriter.write("苦心人,天不负!");
            bufferedWriter.newLine();
            bufferedWriter.close();

        } catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        try
        {
            BufferedReader bufferedReader = new BufferedReader(new FileReader("test.txt"));
            String string;
            for(string =bufferedReader.readLine();string!=null; string =bufferedReader.readLine())
            {
                System.out.println(string);
            }   

        } catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }   
    }
}

/*
* 名称:FilereaderAnd Filewriter
* 说明:此处的filereader是reader的子类,主要用于处理字符流的文件输入。但有点不理解的是在本例中和fileinputstream相比较最后输出的结果是相同的,而且它们循环的次数也是一样的。照理说,不应该filereader每次读出的是两个字,inputstream每次读出的是一个字节,怎么最后num还会是一样的呢???还有待商榷。对于filewriter,这是个文件的输出流,也是个字符流。基本用法和特点和filereader差不多,在此就不在赘述了。
*
*
*/


package ByteStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;

public class J_FileReaderAndFileWriter
{
    public void TestReader()
    {
        try
        {
            FileWriter f_out= new  FileWriter("test.txt");
            f_out.write("有志者,事竟成");
            f_out.close();

            FileReader f_in = new FileReader("test.txt");
            int i;
            int num = 0;
            while((i =f_in.read() ) != -1)
            {
                System.out.print((char)i);
                ++num;
            }
            System.out.println("num1:" + num);
            f_in.close();
        } catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值