一、构建字符串
一般在同一个线程里面用StringBuilder,在不同的线程中构建字符串用StringBuffer.这两个对象构建新字符串时比用“+”来连接字符串效率高(因为“+”每次连接一个字符串都会创建一个新的字符串,比较费时)。
步骤:
1、StringBuilder builder = new StringBuilder();
2、builder.append(str1);
3、String newString = builder.toString();//将StringBuilder中缓存的字符转化为字符串
二、从控制台读取用户输入
一般用到的是Scanner类,如果要读入密码,要用到Console类。
步骤:
1、//创建一个Scanner对象,并且该对象与System.in关联起来
Scanner in = new Scanner(System.in);
2、String name = in.nextLine();//还有其他很多读取方法
三、文件输入输出
文件输入用到Scanner类,文件输出用到PrintWriter类。
步骤:输入Scanner in = new Scanner(Paths.get(文件绝对路径));
输出: PrintWriter out = new PrintWreter("文件绝对路径");
out.println();//这里的输出方法和System.out一样
out.flush();//清空缓冲区
out.close();//关闭输出流
示例代码一:
public class InputTest {
public static void main(String[] args) {
//创建一个Scanner对象,并且该对象与System.in关联起来
Scanner in = new Scanner(System.in);
//输出一行语句提示用户输入姓名,在用户输入之后,读取该输入
System.out.println("Please input your name:");
String name = in.nextLine();
//要求用户输入年龄
System.out.println("Please input your age:");
int age = in.nextInt();
//输出用户的信息
System.out.println("Hello,"+name+".You will be "+(age+1)+" years old next year!");
}
}
示例代码二:
public class FileInputTest {
public static void main(String[] args) throws IOException {
//读入一个文件input.txt
Scanner in = new Scanner(Paths.get("F:\\install\\安卓ADT\\adt-bundle-windows-x86_64-20131030\\eclipse\\workspace\\FileInputTest\\src\\input.txt"));
//读取文件中的数据
String str1 = in.nextLine();
int int1 = in.nextInt();
String str2 = in.next();
String str3 = in.next();
//利用StringBuilder构建新字符串
StringBuilder builder = new StringBuilder();
builder.append(str1);
builder.append("\r\n");//添加一个换行
builder.append(int1);
builder.append("\r\n");
builder.append(str2);
builder.append(" ");
builder.append(str3);
String newString = builder.toString();//将StringBuilder中缓存的字符转化为字符串
//创建一个文件输出对象
PrintWriter outtofile = new PrintWriter("F:\\install\\安卓ADT\\adt-bundle-windows-x86_64-20131030\\eclipse\\workspace\\FileInputTest\\src\\output.txt");
//将newString打印到文件output.txt中
outtofile.print(newString);
outtofile.flush();//清空缓冲区
outtofile.close();//关闭输出流
}
}