RT~上次看到一位朋友的问题,下去试了下,虽完成了,但有一行代码不大明白,请大虾们指点~import java.io.*;
/*
 * 键盘输入姓,文件输出相邻的100个字
 */
public class TestIO {
  public static void main(String[] args){
  int c = 0;
  InputStreamReader isr=new InputStreamReader(System.in);//疑惑处
  try {
c=isr.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
     fun(c);
  }
  public static void fun(int c){
  FileWriter fw = null;
    try {
      fw = new FileWriter("F:\\练习\\text.txt");
      for(int i=c-50;i<=c+50;i++){
        fw.write((char)i);
      }
      fw.close();
    } catch (IOException e1) {
     e1.printStackTrace();
      System.out.println("文件写入错误");
      System.exit(-1);
    }
  }
}

解决方案 »

  1.   

    从控制台读入一个数,把c旁边的一些书写入到文件中~!相邻100个数应该怎么理解的呢?为什么不是[c, c+99],而且[c-50, c+50]是101个数。
      

  2.   

    InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,否则可能接受平台默认的字符集。 每次调用 InputStreamReader 中的一个 read() 方法都会导致从基础输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从基础流读取更多的字节,使其超过满足当前读取操作所需的字节。 为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如:  BufferedReader in
       = new BufferedReader(new InputStreamReader(System.in));
     摘录自api[c,c+99]是一百没错,但当中包含了输入的那个姓