2011-08-31 繁重作业,解决昨天问题继续java io 字节流

今天感到自己的任务很重,不是我不自信,确实是要学的东西很多。现在作为一名学电脑的学生的我连打字都不能忙打,唉!!!该采取点什么措施呢?我能坚持下来吗?

感叹,没什么壮志。废话说多了,言归正传。

首先,昨天问题的解决。第一个是哪个“多两个字节”的问题。原因在于下面的代码:

A      bw.write(str);
B	bw.flush();
C	bw.newLine();
D	str=br.readLine();

原因在于C行,多那两个字节是多一个回车即多写了次bw.newLine();我先后调试了这几句代码的位置结果还是一样。后来我同桌说加入两个标记变量用来记录行数和进行比较也许行。后来我仔细想了下但没想出个结果,在此我表示道歉我没解决那个问题,也求高手指点一二。先谢谢了。

其次,今天的学习java中字节流的处理。仍旧是作业:1,读取文件test.txt中的前5个字节,并存放到数组b中(从下标3开始)。

2、编写程序,接收用户从键盘输入数据并保存到当前路径下的文件test.txt中。然后又等待用户从键盘输入数据,将数据添加到文件末尾。如果回车后输入‘#’时,则结束程序运行。

下面是这两个题的代码:

一、:

import java.io.*;
class  TestDuQu{
	public static void main(String[] args) {
		FileInputStream fis=null;
		char[] ch=new char[10];
		int i=1;
		try{
			fis=new FileInputStream(new File("e:\\Java\\java_biji\\TestJieShu.txt"));
			int n=fis.read();
			while(n!=-1){
				if(i>=2&&i<=6){
					ch[i]=(char)n;
				}
				if(i>6)
					break;
				i++;
				n=fis.read();
			}
		}catch(IOException e){
			System.out.println(e.toString());
		}finally{
			if(fis!=null)
				try{
					fis.close();
				}catch(IOException e){
					System.out.println(e.toString());
				}
		}
		System.out.println(new String(ch));
	}
}


 

二、

import java.io.*;
class TestJieShu{
	public static void main(String[] args) {
		InputStreamReader isr=null;
		OutputStreamWriter osw=null;
		try{
			isr=new InputStreamReader(System.in);
			osw=new OutputStreamWriter(new FileOutputStream
(new File("e:\\Java\\java_biji\\TestJieShu.txt")));
			System.out.println("输入字符");
			char n=(char)isr.read();
			while((char)n!='#'){
	
				osw.write(n);
				n=(char)isr.read();
				osw.flush();
			}
		}catch(IOException e){
			System.out.println(e.toString());
		}finally{
			if(isr!=null)
				try{
					isr.close();
				}catch(IOException e){
					System.out.println(e.toString());
				}
			if(osw!=null)
				try{
					osw.close();
				}catch(IOException e){
					System.out.println(e.toString());
				}
		}
	}
}


 

今天什么难点,却有个混淆点-java中字节流与字符流。还有缓冲流。等我在研究一段时间便把成果发上去。


 

你可能感兴趣的:(2011-08-31 繁重作业,解决昨天问题继续java io 字节流)