一些基础Java习题
2014-11-16 10:24
176 查看
1、 在文本文件book.txt中包含有很长篇幅的英语短文,编写程序要求统计文件的所有短文中包含英文字母“A”的个数
package iowork;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
/**2014-11-15
* @author Administrator
*1、 在文本文件book.txt中包含有很长篇幅的英语短文,编写程序要求统计文件的所有短文中包含英文字母“A”的个数
*/
public class ReadTxt {
public static void main(String[] args) {
File file=new File("D:/book.txt");
// 创建文件
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
FileInputStream fis=new FileInputStream(file);
int c=fis.read();
int count=0;
for(int i=0;i<file.length();i++){
char ch = (char)(fis.read()); //循环读取字符
if(ch=='A'){
count++;
}
// System.out.print(ch);
}
System.out.println("共"+count+"个A");
fis.close();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("文件打开失败。");
e.printStackTrace();
}
}
}
2、 把一个文件中的内容读出,把大写字母转换成小写字母后输出到另一个文件中
package iowork;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
/**2014-11-15
* @author Administrator
*2、 把一个文件中的内容读出,把大写字母转换成小写字母后输出到另一个文件中
*/
public class Work2 {
public static void main(String[] args) throws IOException {
String txtFilePath = "d:/book.txt";//原文件
FileInputStream fis = new FileInputStream(new File(txtFilePath));
InputStreamReader isr = new InputStreamReader(fis,"GBK");
BufferedReader reader = new BufferedReader(isr);
String otherTxtFilePath = "d:/book_lower.txt";//保存小写的文件
FileOutputStream fos = new FileOutputStream(new File(otherTxtFilePath));
OutputStreamWriter osw = new OutputStreamWriter(fos,"GBK");
BufferedWriter writer = new BufferedWriter(osw);
String line = null;
while((line = reader.readLine()) != null){
writer.append(line.toLowerCase()).append("\r\n");
}
writer.close();
reader.close();
}
}
3、 编写一个程序,检测本地是否存在保存保存学生的对象(反序列化),如果存在则在控制台输出学生信息(反序列化),如果没有,则先通过Student创建学生对象,将学生信息输出并保存到本地文件(序列化)中。
package iowork;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
/**2014-11-15
* @author Administrator
*3、 编写一个程序,检测本地是否存在保存保存学生的对象(反序列化),如果存在则在控制台输出学生信息(反序列化),
*如果没有,则先通过Student创建学生对象,将学生信息输出并保存到本地文件(序列化)中。
*/
public class Work3 implements Serializable{
private static final long serialVersionUID = 1L;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
/*
* 文件为E盘下的student.txt文件
*/
ObjectOutputStream output = null;
Object obj = null;
//如果捕获到异常,说明文件中没有存储任何对象
try{
ObjectInputStream input = new ObjectInputStream(new FileInputStream(new File("E:\\student.txt")));
obj = input.readObject();
} catch(Exception EOFException){
System.out.println("没有存储学生对象");
}
System.out.println(obj);
if(obj instanceof Work3){
//如果没有异常并且存储的为学生对象
Work3 student = (Work3)obj;
System.out.println("已保存的学生的姓名为: " + student.getName());
}else {
//如果没有异常但存储的不是学生对象
Work3 s = new Work3();
s.setName("张三");
output = new ObjectOutputStream(new FileOutputStream(new File("E:\\student.txt")));
output.writeObject(s);
System.out.println("学生信息已保存");
}
}
}
4、 请编写一个类,类名为SubThread, 是Thread 类的子类。该类中定义run()方法,方法中有一个 for循环,循环一共进行5次,循环体先在命令行显示该线程循环了第几次,然后休眠半秒的时间,循环结束后显示线程结束信息:线程名+finished。 编写一个Application程序,并在其中创建 Sub Thread类的三个线程对象T1,T2,T3,他们的名称分别为Frist,Second,Third,并启动这三个线程
package iowork;
/**2014-11-15
* @author Administrator
*4、 请编写一个类,类名为SubThread, 是Thread 类的子类。该类中定义run()方法,方法中有一个 for循环,
*循环一共进行5次,循环体先在命令行显示该线程循环了第几次,然后休眠半秒的时间,
*循环结束后显示线程结束信息:线程名+finished。 编写一个Application程序,
*并在其中创建 Sub Thread类的三个线程对象T1,T2,T3,
* 他们的名称分别为Frist,Second,Third,并启动这三个线程
*/
public class SubThread extends Thread{
public void run(){
try {
for(int i=0;i<5;i++){
System.out.println("该线程循环了"+i+"次");
Thread.sleep(500);
System.out.println(i+"线程finished");
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
//三个线程
Thread t1 = new Thread(new SubThread()); //第一个自定义线程
Thread t2 = new Thread(new SubThread()); //第二个自定义线程
Thread t3 = new Thread(new SubThread()); //第二个自定义线程
t1.start();
t2.start();
t3.start();
}
}
5.多线程求素数
package work5;
public class CalcPrime {
public static void main(String[] args) {
Thread1 t1 = new Thread1();
Thread2 t2 = new Thread2();
Thread3 t3 = new Thread3();
t1.start();
t2.start();
t3.start();
}
}
class Thread1 extends Thread {
Thread4 t4 = Thread4.getInstance();
public void run() {
String str1 = PrimeHandler.getInstance().getPrimeNums(1000, 10000);
t4.accept(str1);
}
}
class Thread2 extends Thread {
Thread4 t4 = Thread4.getInstance();
public void run() {
String str2 = PrimeHandler.getInstance().getPrimeNums(10001, 20000);
t4.accept(str2);
}
}
class Thread3 extends Thread {
Thread4 t4 = Thread4.getInstance();
public void run() {
String str3 = PrimeHandler.getInstance().getPrimeNums(20001, 30000);
t4.accept(str3);
}
}
class Thread4 extends Thread {
private static int isEnd = 0;
private static Thread4 t4;
private Thread4() {
}
public static Thread4 getInstance() {
if (t4 == null) {
t4 = new Thread4();
}
return t4;
}
public void run() {
while (isEnd == 3) {
PrintHandler.destroy();
}
}
public void accept(String content) {
PrintHandler.getInstence("xyz.dat").printString(content);
isEnd++;
}
}
6.遍历文件夹内容
package iowork;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
/**2014-11-15
* @author Administrator
*1、 在文本文件book.txt中包含有很长篇幅的英语短文,编写程序要求统计文件的所有短文中包含英文字母“A”的个数
*/
public class ReadTxt {
public static void main(String[] args) {
File file=new File("D:/book.txt");
// 创建文件
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
FileInputStream fis=new FileInputStream(file);
int c=fis.read();
int count=0;
for(int i=0;i<file.length();i++){
char ch = (char)(fis.read()); //循环读取字符
if(ch=='A'){
count++;
}
// System.out.print(ch);
}
System.out.println("共"+count+"个A");
fis.close();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("文件打开失败。");
e.printStackTrace();
}
}
}
2、 把一个文件中的内容读出,把大写字母转换成小写字母后输出到另一个文件中
package iowork;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
/**2014-11-15
* @author Administrator
*2、 把一个文件中的内容读出,把大写字母转换成小写字母后输出到另一个文件中
*/
public class Work2 {
public static void main(String[] args) throws IOException {
String txtFilePath = "d:/book.txt";//原文件
FileInputStream fis = new FileInputStream(new File(txtFilePath));
InputStreamReader isr = new InputStreamReader(fis,"GBK");
BufferedReader reader = new BufferedReader(isr);
String otherTxtFilePath = "d:/book_lower.txt";//保存小写的文件
FileOutputStream fos = new FileOutputStream(new File(otherTxtFilePath));
OutputStreamWriter osw = new OutputStreamWriter(fos,"GBK");
BufferedWriter writer = new BufferedWriter(osw);
String line = null;
while((line = reader.readLine()) != null){
writer.append(line.toLowerCase()).append("\r\n");
}
writer.close();
reader.close();
}
}
3、 编写一个程序,检测本地是否存在保存保存学生的对象(反序列化),如果存在则在控制台输出学生信息(反序列化),如果没有,则先通过Student创建学生对象,将学生信息输出并保存到本地文件(序列化)中。
package iowork;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
/**2014-11-15
* @author Administrator
*3、 编写一个程序,检测本地是否存在保存保存学生的对象(反序列化),如果存在则在控制台输出学生信息(反序列化),
*如果没有,则先通过Student创建学生对象,将学生信息输出并保存到本地文件(序列化)中。
*/
public class Work3 implements Serializable{
private static final long serialVersionUID = 1L;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
/*
* 文件为E盘下的student.txt文件
*/
ObjectOutputStream output = null;
Object obj = null;
//如果捕获到异常,说明文件中没有存储任何对象
try{
ObjectInputStream input = new ObjectInputStream(new FileInputStream(new File("E:\\student.txt")));
obj = input.readObject();
} catch(Exception EOFException){
System.out.println("没有存储学生对象");
}
System.out.println(obj);
if(obj instanceof Work3){
//如果没有异常并且存储的为学生对象
Work3 student = (Work3)obj;
System.out.println("已保存的学生的姓名为: " + student.getName());
}else {
//如果没有异常但存储的不是学生对象
Work3 s = new Work3();
s.setName("张三");
output = new ObjectOutputStream(new FileOutputStream(new File("E:\\student.txt")));
output.writeObject(s);
System.out.println("学生信息已保存");
}
}
}
4、 请编写一个类,类名为SubThread, 是Thread 类的子类。该类中定义run()方法,方法中有一个 for循环,循环一共进行5次,循环体先在命令行显示该线程循环了第几次,然后休眠半秒的时间,循环结束后显示线程结束信息:线程名+finished。 编写一个Application程序,并在其中创建 Sub Thread类的三个线程对象T1,T2,T3,他们的名称分别为Frist,Second,Third,并启动这三个线程
package iowork;
/**2014-11-15
* @author Administrator
*4、 请编写一个类,类名为SubThread, 是Thread 类的子类。该类中定义run()方法,方法中有一个 for循环,
*循环一共进行5次,循环体先在命令行显示该线程循环了第几次,然后休眠半秒的时间,
*循环结束后显示线程结束信息:线程名+finished。 编写一个Application程序,
*并在其中创建 Sub Thread类的三个线程对象T1,T2,T3,
* 他们的名称分别为Frist,Second,Third,并启动这三个线程
*/
public class SubThread extends Thread{
public void run(){
try {
for(int i=0;i<5;i++){
System.out.println("该线程循环了"+i+"次");
Thread.sleep(500);
System.out.println(i+"线程finished");
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
//三个线程
Thread t1 = new Thread(new SubThread()); //第一个自定义线程
Thread t2 = new Thread(new SubThread()); //第二个自定义线程
Thread t3 = new Thread(new SubThread()); //第二个自定义线程
t1.start();
t2.start();
t3.start();
}
}
5.多线程求素数
package work5;
public class CalcPrime {
public static void main(String[] args) {
Thread1 t1 = new Thread1();
Thread2 t2 = new Thread2();
Thread3 t3 = new Thread3();
t1.start();
t2.start();
t3.start();
}
}
class Thread1 extends Thread {
Thread4 t4 = Thread4.getInstance();
public void run() {
String str1 = PrimeHandler.getInstance().getPrimeNums(1000, 10000);
t4.accept(str1);
}
}
class Thread2 extends Thread {
Thread4 t4 = Thread4.getInstance();
public void run() {
String str2 = PrimeHandler.getInstance().getPrimeNums(10001, 20000);
t4.accept(str2);
}
}
class Thread3 extends Thread {
Thread4 t4 = Thread4.getInstance();
public void run() {
String str3 = PrimeHandler.getInstance().getPrimeNums(20001, 30000);
t4.accept(str3);
}
}
class Thread4 extends Thread {
private static int isEnd = 0;
private static Thread4 t4;
private Thread4() {
}
public static Thread4 getInstance() {
if (t4 == null) {
t4 = new Thread4();
}
return t4;
}
public void run() {
while (isEnd == 3) {
PrintHandler.destroy();
}
}
public void accept(String content) {
PrintHandler.getInstence("xyz.dat").printString(content);
isEnd++;
}
}
package work5; public class PrimeHandler { private static PrimeHandler pHandler; private PrimeHandler() { } public static synchronized PrimeHandler getInstance() { if (pHandler == null) { pHandler = new PrimeHandler(); } return pHandler; } private static boolean isPrimeNum(int n) { boolean hasDivisor = false; for (int i = 2; i < n; i++) { if (n % i == 0) { hasDivisor = true; } } if (hasDivisor) { return false; } else { return true; } } public synchronized String getPrimeNums(int from, int to) { StringBuilder strBuilder = new StringBuilder(); int tag = 1; for (int i = from; i <= to; i++) { if (isPrimeNum(i)) { strBuilder.append(i).append(","); if (tag % 15 == 0) { strBuilder.append('\n'); } tag++; } } return strBuilder.toString(); } } package work5; public class PrimeHandler { private static PrimeHandler pHandler; private PrimeHandler() { } public static synchronized PrimeHandler getInstance() { if (pHandler == null) { pHandler = new PrimeHandler(); } return pHandler; } private static boolean isPrimeNum(int n) { boolean hasDivisor = false; for (int i = 2; i < n; i++) { if (n % i == 0) { hasDivisor = true; } } if (hasDivisor) { return false; } else { return true; } } public synchronized String getPrimeNums(int from, int to) { StringBuilder strBuilder = new StringBuilder(); int tag = 1; for (int i = from; i <= to; i++) { if (isPrimeNum(i)) { strBuilder.append(i).append(","); if (tag % 15 == 0) { strBuilder.append('\n'); } tag++; } } return strBuilder.toString(); } }
6.遍历文件夹内容
package iowork; import java.io.File; public class Work6 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub File file = new File("C:\\迅雷下载\\"); printFile(file,0); } /** * 输出文件树 * @param file * @param l */ public static void printFile(File file,int l){ String str = new String(); //生成补充空格 for(int i=0;i<l;i++){ str +=" " ; } //先输出自己后输出子目录或文件 formatPrint(file,str); if(file.isDirectory()){ //判断是否为目录 File[] files = file.listFiles(); //获取目录下文件列表 for(File f:files){//递归输出文件 printFile(f,l+3); } } } /** * 格式化输出文件 * @param file * @param str */ public static void formatPrint(File file,String str){ //先输出文件 String[] names = file.getName().split("[.]"); System.out.println(str+file.getName() + " "+names[names.length-1]+" 文件" + " "+file.length()); } }
相关文章推荐
- java的一些基础知识(引用BlogJava 落花飞雪)
- 一些JAVA基础概念
- 一些java中常见的基础问题的总结
- JAVA web开发基础(四)、一些开源项目
- java的一些基础知识
- 一些Java基础测试题目
- Java的一些基础知识
- JAVA的一些基础(持续更新)
- 对java基础数据类型在运算过程中的自动转换的一些分析
- JAVA基础知识: 对synchronized(this)的一些理解
- 一些 Java 语言的基础细节
- JAVA的一些常用基础知识点
- java 与c、c++的一些区别(基础)
- java的一些基础知识(引用BlogJava 落花飞雪)
- 关于java的一些基础知识和经验
- 学Java前要了解的一些基础知识
- java的一些基础知识(引用BlogJava 落花飞雪)
- java中一些性能优化的例子(基础)
- Java基础学习中必须清楚的一些问题
- 一些java的基础知识