FileInputStream fis = new FileInputStream("D:\\输入文本.txt");
BufferedInputStream bis = new BufferedInputStream(fis);
InputStreamReader isr = new InputStreamReader(bis);
StringBuffer sb = new StringBuffer();
char ch = 0;
while((int)ch != -1){
ch = (char)isr.read();
System.out.println("read "+isr.read());
sb.append(ch);
   }
System.out.println("sb = "+sb);
这是我想用的一种方式 但是int转char时丢失精度的问题我不会解决   
原来还试过直接存入一个char[] 但是InputStreamReader好像不提供返回字符流长度的方法就放弃了
问题1:上面这段代码的方法是否可行?若可行该怎样修改?
问题2:字符流有能返回长度的方法么?
问题3:还有更简便的方法用IO流读入一个txt中的字符串么?
   本人新手上路 先多谢各位指教了

解决方案 »

  1.   

    String串啊?可以一行一行的读啊.
    BufferedReader read = new BufferedReader(new FileReader(new File("c:\\a.txt")));
    String line = read.readLine();while(line!=null){
          //在这里处理line里的内容,每次都是读取一行
        line = read.readLine();
     }
      

  2.   


    BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("*.txt")));
    String s = br.readLine();
      

  3.   

    (3)还有更简便的方法用IO流读入一个txt中的字符串么?
    你可以查一下API文档,那个BufferedReader中的管道有个readLine方法,挺好用的,用的很多啊!
      

  4.   

    BufferedReader方法:
    public static void main(String[] args) {
           try {
    FileReader fr=new FileReader("C:\\java.txt");
       BufferedReader br=new BufferedReader(fr);
       String str=br.readLine();
       while(str!=null){
       System.out.println(str);
       str=br.readLine();
       }
       br.close();
       fr.close();
           } catch (FileNotFoundException e) {
            e.printStackTrace();
           } catch (IOException e) {
            e.printStackTrace();
           }
    }
    InputStream 方法:
    public static void main(String[] args){
    try {
    String dir="c:\\java.txt";
    InputStream file=new FileInputStream(dir);
    char[] text=new char[file.available()];
    for(int i=0;i<text.length;i++){
    text[i]=(char)file.read();
    System.out.print(text[i]);
    }
    file.close();
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    两种方都有自己的好处,如果把文章直接显示的用BufferedReader好,如果要对文件中的字段进行判断的话要用InputStream好些……
      

  5.   

    可以使用Reader类进行读取,Reader类是基类,使用其派生类进行操作,使用readline方法可以直接进行读取,读取完之后再进行相应的操作
      

  6.   

    如果你使用 java 7。可以使用 Files的 readAllLines 方法,返回 List<String>行列表。