重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
List list = new ArrayList();
10年的和龙网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整和龙建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“和龙网站设计”,“和龙网站推广”以来,每个客户项目都认真落实执行。
try {
BufferedReader bw = new BufferedReader(new FileReader(new File (".\\abc.txt")));
String line = null;
try {
while((line = bw.readLine())!=null){
list.add(line);
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
list.size();//TXT的行数
char[] c = list.get(2).toString().toCharArray(); // TXT中第3行内容赋给数组
文件流里有个readline函数,这个每次可以读取一行,然后你自己再设计个算法吧,例如每行如果开头如果是“//”则这行不计数,如果是“class”则要把类的个数加1
获取行数涉及到java中读写文件的IO操作。
获取一个文本文件的行数较为方便的方法,是通过BufferedReader类的readLine()方法,间接的统计行数。
源代码:
public static int getTextLines() throws IOException {
String path = "c:\\job.txt" ;// 定义文件路径
FileReader fr = new FileReader(path); //这里定义一个字符流的输入流的节点流,用于读取文件(一个字符一个字符的读取)
BufferedReader br = new BufferedReader(fr); // 在定义好的流基础上套接一个处理流,用于更加效率的读取文件(一行一行的读取)
int x = 0; // 用于统计行数,从0开始
while(br.readLine() != null) { // readLine()方法是按行读的,返回值是这行的内容
x++; // 每读一行,则变量x累加1
}
return x; //返回总的行数
}
相信看完上面的,应该就会了。
话不多说先上代码
Scanner sc = new Scanner(f);
int i = 0, j=0, k=0;
while(sc.hasNext()) {
sc.next();
i++;
}
sc = new Scanner(f);
while(sc.hasNextLine()) {
sc.nextLine();
j++;
}
sc = new Scanner(f);
while(sc.hasNextByte()) {
sc.nextByte();
k++;
}
System.out.println(i+" "+j+" "+k);
然后区分一下字节和字符的概念,一个字节是一个8位的2进制数,一个字符是'a'、'1'这种
楼主是不是说的统计字符呢
scanner类中并没有统计字符的方法 用filereader貌似方便一点
这是只是提供一个思路,多查api文档,多用google,这类问题都不叫问题。
搜到这段代码后,我表示很惭愧
public class Test {
public static void main(String[] args) throws Exception{
Scanner input=new Scanner(System.in);
System.out.println("请输入路径");
String path=input.next();
int charNum= 0 ;
int wordsNum= 0;
int lineNum = 0;
InputStreamReader isr = new InputStreamReader(new FileInputStream(path));
BufferedReader br = new BufferedReader(isr);
while( br.read()!= -1){
String s = br.readLine();
charNum+=s.length();
wordsNum +=s.split(" ").length;
lineNum ++;
}
isr.close();//关闭
System.out.println("字符数:"+charNum+"\t单词数:"+wordsNum+"行 数:"+lineNum);
}
}
在C盘新建文件1.txt,输入任意字符,如下图:
编写java代码。如下:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.TreeMap;
public class Test {
// 统计数字或者字符出现的次数
public static TreeMapCharacter, Integer Pross(String str) {
char[] charArray = str.toCharArray();
TreeMapCharacter, Integer tm = new TreeMapCharacter, Integer();
for (int x = 0; x charArray.length; x++) {
if (!tm.containsKey(charArray[x])) {
tm.put(charArray[x], 1);
} else {
int count = tm.get(charArray[x]) + 1;
tm.put(charArray[x], count);
}
}
return tm;
}
public static void main(String[] args) {
BufferedReader br = null;
int line = 0;
String str = "";
StringBuffer sb = new StringBuffer();
try {
br = new BufferedReader(new FileReader("c:\\1.txt"));
while ((str = br.readLine()) != null) {
sb.append(str);
++line;
}
System.out.println("\n文件行数: " + line);
System.out.println("\n文件内容: " + sb.toString());
TreeMapCharacter, Integer tm = Pross(sb.toString());
System.out.println("\n字符统计结果为:" + tm);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}运行结果如下图: