参考:

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. 【leetcode】1018. Binary Prefix Divisible By 5

    题目如下: Given an array A of 0s and 1s, consider N_i: the i-th subarray from A[0] to A[i] interpreted a ...

  2. git操作命令行

    前言 git操作各种软件五花八门,懒得研究,用最原始的方法敲命令行. 操作 1.网上下载git 网上百度一下好多直接下载就好 2.配置用户名邮箱 $ git config --global user. ...

  3. 【JVM】垃圾收集器和收集器的选择策略

    前言:新生代的收集器有:Serial,ParNew,Parallel Scavenge等.老年代有:CMS,SerialOld,Paraller Old等.接下来将深入理解各个垃圾收集器的原理,以及它 ...

  4. LeetCode算法题

    1.给两个整数数组 A 和 B ,返回两个数组中公共的.长度最长的子数组的长度. 时间复杂度待优化 class Solution { public int findLength(int[] A, in ...

  5. visual studio code的使用

    1.添加代码片段 参考:https://blog.csdn.net/qq_36370731/article/details/83014439 2.在vscode上运行Git 先打开vscode内置的G ...

  6. 【LeetCode 84】柱状图中最大的矩形

    题目链接 [题解] 维护一个单调递增的栈. 会发现栈内的第i个元素的前面一个(i-1)元素在原始的序列中的数字 都是要高于第i个元素的.(或者没有元素) 那么第i个元素往左最多可以扩展到第i-1个元素 ...

  7. router登录逻辑实现页面跳转

    main.js文件中router.beforeEach((to, from, next) => { NProgress.start() const token = localStorage.ge ...

  8. html&css面试笔记

    1.CSS选择器有哪些?它们的优先级是怎样的? 选择器类型: id选择器 ( # myid) 类选择器 (.myclassname) 标签选择器 (div, h1, p) 相邻选择器 (h1 + p) ...

  9. php面试专题---4、流程控制考点

    php面试专题---4.流程控制考点 一.总结 一句话总结: 理解循环内部机制(指针操作),更易于记忆foreach的reset特性,分支结构中理解了switch...case的执行步骤(跳转表)也就 ...

  10. 在Js中得到元素的子元素集合注意事项

    http://www.cnblogs.com/phonefans/archive/2008/09/04/1283739.html 在Js中得到元素的子元素集合注意事项 费话少说,直接看例子: 1 &l ...