问题描述
输出地文件内容不知为何为assic码这是我的程序importjava.io.*;publicclassPrgrmStream{publicstaticvoidmain(String[]args){try{FileInputStreamfile=newFileInputStream("TestText.txt");booleaneof=false;intbytecount=0;intstringcount=0;intlinecount=0;while(!eof){intinput=file.read();System.out.print(input);if(input==-1)eof=true;elseif(input=='')stringcount++;elseif(input=='n')linecount++;elsebytecount++;}file.close();//关闭文件System.out.println("nBytesread:"+(bytecount+1)+"nStringsread:"+(stringcount+1)+"nLinesread:"+(linecount+1));}catch(IOExceptione){System.out.println("Error--"+e.toString());}}}
解决方案
解决方案二:
要用BufferedReader()的readLine方法BufferedReader用你的fileInputStream转换成inputStreamReader初始化
解决方案三:
嗯。。。解决了。但是我这个程序要求统计文本文件内容的行数、字符串数、字符数,readLine()的话要怎么统计
解决方案四:
引用1楼abbuggy的回复:
要用BufferedReader()的readLine方法BufferedReader用你的fileInputStream转换成inputStreamReader初始化
嗯。。。解决了。但是我这个程序要求统计文本文件内容的行数、字符串数、字符数,readLine()的话要怎么统计
解决方案五:
intinput=file.read();System.out.print((char)input);//input为int型变量,只有将其强制转换成字符型才行
解决方案六:
解决了,还是read()输出的时候使用强制转换(char)就可以了,谢谢啊
解决方案七:
publicclassFileOpenTest{privateintcount=0;/****@paramfilePath*@returnreadthefiletorecordline;*/privateFileOpenTest(StringfilePath){Filef=newFile(filePath);try{BufferedReaderbr=newBufferedReader(newFileReader(f));while(br.ready()){br.readLine();count++;}}catch(IOExceptione){e.printStackTrace();}}privateintgetCount(){returncount;}publicstaticvoidmain(String[]args){StringfilePath="D:\MrTool.java";//localfilerootFileOpenTestfot=newFileOpenTest(filePath);System.out.println(fot.getCount());}}