做一个简易的记事本,无需界面
编程语言大致尤其规律,因此直接从应用开始学习熟练。
学习链接及整理
先记录一下学习过程中遇到的整理比较好的学习链接:
简易记事本 是我用于学习的基础版本,我将在此基础上完善拓展
scanner
java scanner类 用于获取用户输入
import java.util.Scanner;
// next方式以空格为终止符 nextline以回车为终止符
public class ScannerDemo{
public static void main(String[] args){
System.out.println("nextLine方式接收");
Scanner sc = new Scanner(System.in);
// 判断是否还有输入(但作用不明?)
if(scan.hasNextLine()){
String str = sc.nextline();
System.out.println("输入的数据为: " + str);
}
sc.close();
}
}
注:在多个scanner情况下,关闭一个,会导致system.in关闭 报错为:No line found.
其他scanner类方法:
方法 | 功能 |
---|---|
Scanner (InputStream in) | 用给定的输入流创建一个Scanner对象 |
String nextLine() | 读取输入的下一行内容 |
String next() | 读取输入的下一个单词 |
int nextInt() | 读取并转换下一个表示整数的字符序列 |
double nextDouble() | 读取并转换下一个表示浮点数的字符序列 |
boolean hasNext() | 检测输入中是否还有其他单词 |
boolean hasNextInt() | 检测是否还有表示整数的下一个字符序列 |
boolean hasNextDouble | 检测是否还有表示浮点数的下一个字符序列 |
Scanner(File f) | 构造一个从给定文件读取数据的Scanner |
Scanner(String data) | 构造一个从给定字符串读取数据的Scanner |
格式化输出,沿用了C语言库函数中的printf方法
System.out.printf(“Hello, %s. Next year, you’ll be %d”, name, age);
使用 printf 打印格式化日期:
System.out.printf("%tc", new Date());
可以使用静态的 String.format 方法创建一个格式化的字符串,而不打印输出:
String massage = String.format((“Hello, %s. Next year, you’ll be %d”, name, age);
java.io
Java IO类非常完整详细地进行了InputStream、OutStream、Reader、Writer使用介绍
@test单元测试
java @test 详细介绍了Java单元测试的环境配置及使用方法
首先配置环境:选中一个java工程 右键 -> properties -> Java Build Path -> Libraries -> Add Library -> 选择JUnit , 单击按钮 “Next>” -> 选择最新版JUnit5 -> Finish –> 单击按钮 “OK” 环境配置完毕。
通过导入包org.junit.Test ,可以在不实用main方法的情况下运行测试单个方法。
注:方法权限只能是public,不能用static修饰
static
public、static 介绍了class中 public private protect static 的概念及应用
文件读写
java文件读写 介绍了java文件读写的两种方法 filewriter 和 bufferedwriterl
字符串比较
字符串比较 字符串比较的两种方法
读取文件夹目录
读取指定文件夹目录 读取指定文件路径下的文件目录
代码ver1.0
// 专用于输入的函数
public static String scanin() {
// 循环输入内容 以"!!!"作为结尾的标志,以"En"作为换行标志
System.out.println("请输入要保存的内容(以!!!结束 如需换行 请单独输入En): ");
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String strs = "";
while(!("!!!".equals(str))) {
if("En".equals(str)) {
strs = strs + "\n" ;
sc = new Scanner(System.in);
str = sc.nextLine();
continue;
}
System.out.println(str);
// String test = "!!!";if("!!!".equals(test)) { System.out.println("ok"); }
strs = strs + str;
sc = new Scanner(System.in);
str = sc.nextLine();
}
sc.close();
return strs;
}
// 创建一个新文档并增添内容
public static void creatnew() {
// 声明Writer对象
Writer writer = null;
System.out.println("为您的新文档起个名吧:");
Scanner sc = new Scanner(System.in);
String tname = sc.nextLine();
//sc.close();
// 创建txt文档
File file1 = new File(path + "/" + tname + ".txt");
try {
// 如果出现路径不对的异常,则抛出异常
file1.createNewFile();
} catch (IOException e1) {
// 出现流异常则抛出路径
e1.printStackTrace();
}
System.out.println("文档创建成功! ");
String strs = scanin();
System.out.println("您的输入内容为:" + strs);
try {
// 将内容输出到文件 可能出现文件不存在的异常 抛出
writer = new FileWriter(file1, true); // 参数为true时 输入将会添加到后面 false会覆盖原内容
writer.write(strs);
} catch (IOException e){
e.printStackTrace();
}finally {
if(writer != null) {
try {
// 关闭流,此时流可能正在使用,抛出异常
writer.close();
} catch (IOException e3) {
e3.printStackTrace();
}
}
}
}