参考:

java中 静态方法和非静态方法的区别

字符流的输入和输出

java文件创建、删除、读取、写入操作大全

Java键盘输入并且写入文件

File类的isDiretory

Java统计子串在字符串中出现的次数

java File类list()和listFile()的方法区别

统计某个路径下所有的java文件,以及统计代码数量

java 去除首尾空格trim()方法

import java.io.*;

public class HandInput{
//生成文件路径
//private static String path = "Documents/code/java 输入输出程序开发"; //文件路径+名称
private static String filenameTemp; /**
* 创建文件
* @param fileName 文件名称
* @return 是否创建成功,成功则返回true
*/
public static boolean createFile(String fileName){
Boolean bool = false;
filenameTemp = fileName+".txt"; //文件路径+名称+文件类型 ?
File file = new File(filenameTemp);
try{
//如果文件不存在,则创建新的文件
if(!file.exists()){
file.createNewFile();
bool = true;
System.out.println("success create file, the file is "+filenameTemp);
//创建InputStreamReader对象,用来读取字符流
//缓冲指定 字符流的输入
//FileInputStream->InputStreamReader->BufferedReader
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter buf2 = new BufferedWriter(new FileWriter(filenameTemp));
String str = buf.readLine();
while(!str.equals("end#")){
buf2.write(str);
buf2.newLine();
str = buf.readLine();
}
buf2.flush(); //刷新该流的缓冲,即将该流输出到目的
buf2.close();
buf.close();
}
else {
System.out.println("file is exist");
}
} catch(Exception e) {
e.printStackTrace();
} return bool;
} public static void main(String[] args){
createFile("f");
}
}

import java.io.*;

public class WordCount {
public static void main(String[] args) throws IOException {
File file = new File("article.txt");
//isDirectory()是检查一个对象是否是文件夹
if(!file.exists() || file.isDirectory()){
throw new FileNotFoundException();
}
BufferedReader br = new BufferedReader(new FileReader(file));
int count=0; String tmp = null;
tmp = br.readLine(); while(tmp!=null){
tmp = tmp.toLowerCase();
System.out.println(tmp);
while(tmp.indexOf("hello")!=-1){ //调用String类的indexOf(String str)方法,返回第一个相同字符串出现的下标
count++;
tmp = tmp.substring(tmp.indexOf("hello")+5); //调用String类的substring(int beginIndex)方法,获得第一个相同字符串出现后的字符串
}
tmp = br.readLine(); }
System.out.println("单词hello在文章article中出现的次数为: "+count);
}
}

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List; public class CodeCount {
static List<File> javalsf = new ArrayList<File>();
static List<File> lsf = new ArrayList<File>();
static int count =0; public static void main(String[] args) throws Exception{
File file = new File("/Users/fitzroy/Documents/code/汇添富移动互联股票(000697)基金收益程序/src");
getJavaFiles(file);
System.out.println("有"+javalsf.size()+"个.java源文件");
getLinesOfCode(javalsf);
} public static List<File> getJavaFiles(File file){
if(!file.exists()){
System.out.println("file not exists");
}
else{
if(file.isFile()){ //是文件
String filename = file.getName();
if(filename.substring(filename.lastIndexOf(".")+1).equals("java")){ //后缀为.java的文件
javalsf.add(file);
}
}
else{ //是文件夹
File[] filelist = file.listFiles(); //获取文件夹中的File
for(File files : filelist){
getJavaFiles(files);
}
}
} return javalsf;
} public static int getLinesOfCode(List<File> javaFiles) {
int num = 0;
try {
for (File file : javaFiles) {
System.out.println("File: " + file.getName());
InputStreamReader is = new InputStreamReader(new FileInputStream(file));
BufferedReader br = new BufferedReader(is);
String str = null;
str = br.readLine();
while (str != null) {
str = str.trim();
if (!str.startsWith("//") && !str.equals("")) {
num++;
}
str = br.readLine();
}
count += num;
System.out.println("lines of code: " + num);
System.out.println("-------------------");
br.close();
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("total: " + count);
return count;
}
}

JAVA 输入输出程序开发的更多相关文章

  1. ubuntu上用eclipse搭建java、python开发环境

    上一篇文章讲到如何在windwos上用eclipse搭建java.python开发环境,这一讲将关注如何在ubuntu上实现搭建,本人使用虚拟机安装的ubuntu系统,系统版本为:14.04 lts ...

  2. JAVA EE企业级开发四步走完全攻略 [转]

    http://bbs.51cto.com/thread-550558-1.html 本文是J2EE企业级开发四步走完全攻略索引,因内容比较广泛,涉及整个JAVA EE开发相关知识,这是一个长期的计划, ...

  3. tomcat免重启随意更改java代码 提高开发效率

    转载:http://developer.51cto.com/art/201012/241243.htm 做为了一个java开发人员,总是为因为要增加一个类,或是增加删除一个方法,甚至修改一个小处代码而 ...

  4. 使用MyEclipse搭建java Web项目开发

    转自:http://blog.csdn.net/jiuqiyuliang/article/details/36875217 首先,在开始搭建MyEclipse的开发环境之前,还有三步工具的安装需要完成 ...

  5. Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】

    http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...

  6. 数据库面试技巧,通过JDBC展示自己专业性,摘自java web轻量级开发面试教程

    这篇文章是我之前写的博文 数据库方面的面试技巧,如何从建表方面展示自己能力 和 面试技巧,如何通过索引说数据库优化能力,内容来自Java web轻量级开发面试教程是一个系列的,通过面试官的视角和大家分 ...

  7. 【JAVA零基础入门系列】Day7 Java输入与输出

    [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...

  8. Java开发知识之Java的集成开发环境

    Java开发知识之Java的集成开发环境 一丶Eclipse 开发环境 Eclipse是IBM公司花了4000万美金开发的一个集成开发环境.是一个免费开源的. 下载官网: http://www.ecl ...

  9. Java Web应用开发中的一些概念

    最近在学习Java Web,发现Java Web的概念很多,而且各个概念之间的关系也挺复杂,本篇博客把这些关系总结于此,主要参考的博客附在文章末尾. 概念 服务器 服务器,硬件角度上说就是一台高性能的 ...

随机推荐

  1. JAVA工具类--手机号生成与正则校验

    package utils; import java.util.Random; import java.util.regex.Pattern; /** * Created with IntelliJ ...

  2. python中冒泡 排序法练习题

    # 第四题:写出冒泡排序函数,可以排序任意类型的元素,可以逆序 # 1.实现冒泡排序算法 # 2.可以排序任意类型的元素 # 3.能够通过参数设置进行逆序,默认升序 def my_sort(lt,ke ...

  3. Go的struct

    1. 前言 Go的struct声明允许字段附带Tag来对字段做一些标记. 该Tag不仅仅是一个字符串那么简单,因为其主要用于反射场景,reflect包中提供了操作Tag的方法,所以Tag写法也要遵循一 ...

  4. centos7不能远程登陆的方案

    网上找了很多,就算百度经验写的都是坑,代码如下: BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INI ...

  5. 从单片机到系统之--uboot启动arm linux

    UBOOT官网下载地址:http://ftp.denx.de/pub/u-boot/ 很详细的UBOOT解释: https://www.crifan.com/files/doc/docbook/ubo ...

  6. (一)arm交叉编译工具链准备

    1.背景 arm机器一般因为资源问题进行编译会影响开发速度,而且很多时候因为资源不够而无法完成编译工作.因此,需要在执行机上进行交叉编译,即使用x86或其他架构机器基于交叉编译工具编译出在arm上可以 ...

  7. jquery 自定义类

    jQuery自定义类封装: (function ($) { $.DragField = function (arg) { var name = "你好"; //这个是私有变量,外部 ...

  8. linux系统中查看日志及系统信息

    cat tail -f 日 志 文 件说 明 /var/log/message系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure与安全相关的日志 ...

  9. Oracle 11g 概述

    始于:1970.6月份的一篇论文,IBM研究员埃德加‘考特<大型共享数据库的关系模型>(也是转折点)1977.6月Larry Ellison Bob Miner Ed Oates创办了“软 ...

  10. leetcode-解题记录 557. 反转字符串中的单词 III

    题目: 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode contest" 输出 ...