Java使用流读入字符,正确输出读入的字符.

本文通过两个示例介绍了 Java 中如何使用流进行字符读取:一是利用 BufferedInputStream 和 ByteArrayOutputStream 对字节流进行处理;二是通过 BufferedReader 和 BufferedWriter 来处理字符流,包括中文字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用流读入字符,正确输出读入的字符.

 

/**
 * $Id:$
 *
 * Copyright 2005 easou, Inc. All Rights Reserved.
 
*/

package say;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;

/**
 * 
 * 
@author sai
 * 
 
*/

public class TestFile {

    
public static void main(String[] args) {
        TestFile tt 
= new TestFile();
        tt.testStreamBuffer();
        tt.testCharBuffer();
    }


    
/**
     * 读stream,不适合读双字节字符
     * 
     
*/

    
public void testStreamBuffer() {
        BufferedOutputStream bo 
= new BufferedOutputStream(System.out);
        
try {
            
byte[] str = (new String("abcdefghijklmn")).getBytes();
            ByteArrayInputStream ba 
= new ByteArrayInputStream(str);

            
// 可以读String
            BufferedInputStream br = new BufferedInputStream(ba);
            
// 也可以读文件

            
// BufferedInputStream br=new BufferedInputStream(new
            
// FileInputStream("d:/hello.txt"));

            
byte[] by = new byte[10];

            
int num = 0;
            
            
while ((num = br.read(by)) != -1{

                System.out.write(by, 
0, num);
                System.out.println();
            }

            bo.close();
        }
 catch (Exception io) {
            io.printStackTrace();
        }

        
    }


    
/**
     * 读字符,中文
     * 
     
*/

    
public void testCharBuffer() {
        
try {
            BufferedReader br 
= new BufferedReader(new StringReader(
                    
"myNnameIs小白sai "));
            
char[] by = new char[10];

            
int num = 0;
            
// StringWriter sw=new StringWriter();
            
// 这里不知道怎么用StringWriter.输出到文件吧
            FileWriter sw = new FileWriter("d:/hello.txt");

            BufferedWriter bo 
= new BufferedWriter(sw);

            
while ((num = br.read(by)) != -1{
                bo.write(by, 
0, num);
                bo.write(
" ");
                bo.flush();

            }

            sw.close();
        }
 catch (Exception io) {
            io.printStackTrace();
        }

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值