1.
编写一个Java应用程序,利用RandomAccessFile类,把几个int型整数(1,2,3,4,5,6,7,8,9,10)写入到一个名字为tom.dat文件中,然后按相反顺序读出这些数据并显示在屏幕上。(注意,一个int型数据占4个字节)
2.
编写一个Java GUI应用程序,采用Java多线程技术,模拟自由落体和平抛运动:一个球自由落下,一个球水平抛出
3.
编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。服务器程序启动后,监听端口5678的请求;客户端程序启动后,向服务器端口5678发送请求。服务器不断接收客户机所写入的信息,并且服务器也会做出"Receive"为回应,告知客户机已接收到消息。要求:服务器程序采用多线程开发,允许多个客户端程序同时连接。客户机发送"End"字符串时,客户端程序退出。(服务端程序和客户端程序分别命名为Server.java和Client.java)
4.
采用Java 多线程技术,设计实现一个符合生产者和消费者问题的程序。对一个对象(枪膛)进行操作,其最大容量是12颗子弹。生产者线程是一个压入线程,它不断向枪膛中压入子弹;消费者线程是一个射出线程,它不断从枪膛中射出子弹。
编写一个Java应用程序,利用RandomAccessFile类,把几个int型整数(1,2,3,4,5,6,7,8,9,10)写入到一个名字为tom.dat文件中,然后按相反顺序读出这些数据并显示在屏幕上。(注意,一个int型数据占4个字节)
2.
编写一个Java GUI应用程序,采用Java多线程技术,模拟自由落体和平抛运动:一个球自由落下,一个球水平抛出
3.
编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。服务器程序启动后,监听端口5678的请求;客户端程序启动后,向服务器端口5678发送请求。服务器不断接收客户机所写入的信息,并且服务器也会做出"Receive"为回应,告知客户机已接收到消息。要求:服务器程序采用多线程开发,允许多个客户端程序同时连接。客户机发送"End"字符串时,客户端程序退出。(服务端程序和客户端程序分别命名为Server.java和Client.java)
4.
采用Java 多线程技术,设计实现一个符合生产者和消费者问题的程序。对一个对象(枪膛)进行操作,其最大容量是12颗子弹。生产者线程是一个压入线程,它不断向枪膛中压入子弹;消费者线程是一个射出线程,它不断从枪膛中射出子弹。
import java.util.Arrays;/**
*
* 编写一个Java应用程序,利用RandomAccessFile类,把几个int型整数 (1,2,3,4,5,6,7,8,9,10)
* 写入到一个名字为tom.dat文件中,然后按相反 顺序读出这些数据并显示在屏幕上。(注意,一个int型数据占4个字节)
*
*/
public class RandomAccessFileDemo
{
public static void main(String[] args) throws IOException
{
RandomAccessFile raf = new RandomAccessFile(new File("tom.dat"), "rw");
for (int i = 1; i <= 10; i++)
{
raf.writeInt(i);
}
raf.seek(0);
int []b=new int [10];
// while ((b = raf.readInt()) != -1)
// {
// System.out.print(b);
// }不能这么写,因为在读到第11次的时候readInt()会抛出EOFEOFException
for (int i = 9; i >=0; i--)
{
b [i]= raf.readInt();
}
System.out.print(Arrays.toString(b));
raf.close();
}
}
{
/**
*
*
* 4. 采用Java
* 多线程技术,设计实现一个符合生产者和消费者问题的程序。对一个对象(枪膛)进行操作,其最大容量是12颗子弹。
* 生产者线程是一个压入线程
* 它不断向枪膛中压入子弹;消费者线程是一个射出线程,它不断从枪膛中射出子弹。
*/
public static void main(String[] args)
{
Gun i = new Gun();
Producter pro = new Producter(i);
Consumer con = new Consumer(i);
new Thread(pro).start();
new Thread(con).start();
}}
//////////////////////////////////////////////
public class Gun
{
private String name;
private String content;
private boolean flag = false; public synchronized void set(String name, String content)
{
if (flag)
{
try
{
super.wait();
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
this.setName(name);
this.setContent(content);
flag = true;//保证生产者进入等待状态
super.notify(); } public synchronized void get()
{
if (!flag)
{
try
{
super.wait();
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
System.out.println(this.getName() + "-->" + this.getContent());
flag = false;//保证消费者进入等待状态
super.notify();
} public String getName()
{
return name;
} public void setName(String name)
{
this.name = name;
} public String getContent()
{
return content;
} public void setContent(String content)
{
this.content = content;
}}
//////////////////////////////////////
public class Consumer implements Runnable
{
private Gun gun=null;
public Consumer (Gun gun)
{
this.gun=gun;
}
public void run()
{
for(int i=0;i<12;i++)
{
this.gun.get();
}
}
}
///////////////////////////////////////
public class Producter implements Runnable
{
private Gun gun=null;
public Producter(Gun gun)
{
this.gun=gun;
} public void run()
{
boolean flag=false;
for(int i=0;i<12;i++)
{
if(flag)
{
this.gun.set("楼主", "给枪上了一发子弹");
flag=false;
}
else
{
this.gun.set("我","给了楼主一枪");
flag=true;
}
}
}
}
import java.io.IOException;
import java.io.RandomAccessFile;public class TomDat
{ public static void main(String[] args)
{
RandomAccessFile raf = null;
try
{
raf = new RandomAccessFile("C:\\tom.dat", "rw");
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
int[] nums = {1,2,3,4,5,6,7,8,9,10}; try
{
for(int i : nums)
{
raf.writeInt(i);
}
}
catch (IOException e)
{
e.printStackTrace();
}
int[] b={}; try
{
raf.seek(4);
b = new int[(int)raf.length()/4-1];
for (int j = 0; j< b.length ; j++)
{
b[j] = raf.readInt();
}
raf.close();
}
catch (IOException e)
{
e.printStackTrace();
}
for (int k = 0; k < b.length; k++)
{
System.out.println(b[b.length-k-1]);
}
}}
有人说没有人不查资料做得出来, 除了第一个流很久没用了需要借助API查看方法,
其余的我表示真的毫无压力。
import java.io.RandomAccessFile;public class Test1
{
public static void main(String[] args) throws Exception {
int[] test = {1,2,3,4,5,6,7,8,9,10};
int num = test.length*4;
RandomAccessFile ra = new RandomAccessFile(new File("D:/tom.dat"), "rw");
for(int i = 0; i < test.length;i++) {
ra.writeInt(test[i]);
}
for(int i = num-4; i>=0; i-=4) {
ra.seek(i);
int result = ra.readInt();
System.out.print(result+" ");
}
}
}
public class Test1
{
public static void main(String[] args) throws Exception {
AK_47 ak = new AK_47();
In i = new In(ak);
Out o = new Out(ak);
new Thread(i).start();
Thread.sleep(400);
new Thread(o).start();
}
}class AK_47 { //枪
int max = 12; //枪子弹最大数目
int num = 0; //当前子弹数目
int in = 0; //记录总共装了子弹数目
int out = 0; //记录总共射出子弹数目
public void in() {
if(num==max) {
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
this.notify();
num++;
in++;
System.out.println("上子弹: "+num+" "+"已经上子弹总数:"+in);
}
public void out() {
if(num==0) {
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
this.notify();
num--;
out++;
System.out.println("射子弹: "+num+" "+"已经射子弹总数"+out);
}
}class Out implements Runnable { //消费者 AK_47 ak;
public Out(AK_47 ak) {
this.ak = ak;
}
public void run() {
for(int i = 0; i < 30;i++) {
synchronized(this.ak) {
ak.out();
}
}
}
}class In implements Runnable { //生产者 AK_47 ak;
public In(AK_47 ak) {
this.ak = ak;
}
public void run() {
for(int i =0; i< 30;i++) {
synchronized(this.ak) {
ak.in();
}
}
}
}
其他题太麻烦不做了,本人美术白痴GUI的程序也不会做。
#52写的是对的import java.io.File;
import java.io.RandomAccessFile;public class Test1
{
public static void main(String[] args) throws Exception {
int[] test = {1,2,3,4,5,6,7,8,9,10};
int num = test.length*4;
RandomAccessFile ra = new RandomAccessFile(new File("D:/tom.dat"), "rw");
for(int i = 0; i < test.length;i++) {
ra.writeInt(test[i]);
}
for(int i = num-4; i>=0; i-=4) {
ra.seek(i);
int result = ra.readInt();
System.out.print(result+" ");
}
}
}
import java.io.IOException;
import java.io.RandomAccessFile;public class FileRW { public static void main(String[] args) throws IOException {
RandomAccessFile raf = new RandomAccessFile(new File("d:\\tom.dat"), "rw");
int[] ins = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ,11 };
for (int i = 0; i < ins.length; i++) {
raf.writeInt(ins[i]);
}
long point = raf.getFilePointer()-4;
do{
raf.seek(point);
byte b[] = new byte[4];
raf.read(b);
System.out.println( b[0]<<24 | b[1]<<16 | b[2]<<8 | b[3]);
}while((point=point-4)>=0);
}
}
long point = raf.getFilePointer()-4;
do{
raf.seek(point);
System.out.println(raf.readInt());
}while((point=point-4)>=0);
提示int是4个字节不一定是提示使用seek(java中int是4个字节是常识),也可以是提示用字节方式读写的时候应该如何取长度,如
byte[] b = new byte[4]; //提示的用意更倾向于这里,用字节数组读入
file.read(b);
int n = 0;
for (int i=0; i<b.length; i++) {
n = (n<<8) | b[i]; //然后自己转换
}
{
static String FileName = "hello.txt";
static String aaa = null;
public static void main(String[] args)
{
//read.readFileByLines(FileName);
try
{
RandomAccessFile raf = new RandomAccessFile(FileName,"rw");
try
{
while(raf.getFilePointer() < raf.length())
{
aaa += raf.readLine();
}
aaa = aaa.replace("null", "");
System.out.println(aaa);
char[] in=new char[aaa.length()];
int b = 0;
for(int i=0;i<aaa.length();i++)
{
in[i]=aaa.charAt(i);
if(in[i] == ' '|| in[i] == ',' || in[i] == '.')
{
b++;
}
System.out.print(in[i]);
}
System.out.println();
System.out.println("单词个数:" + b);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("行读取失败!");
}
//System.out.println("读取文件成功!");
}
catch (FileNotFoundException e)
{
e.printStackTrace();
System.out.println("读取文件失败!");
} }
}
import java.awt.Graphics;
public class Test extends Applet implements Runnable{
Thread t1;
int h=0;
int t=0;
int g1=10;
int x=0;
boolean flag=false;
public void start() { t1 = new Thread(this);
t1.start();
}
@Override
public void run() {
// TODO Auto-generated method stub
while(!flag){
h=g1*t*t;
h+=5;
x=26*t;
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t=t+1;
if(h>600)
flag=true;
System.out.println("秒 : " + t);
System.out.print(h);
repaint();
}
}
public void paint(Graphics g){
g.drawOval(x+50,h, 10,10);
g.drawOval(50,h, 10, 10);
}
}
人有短期记忆和长期记忆两种。有些东西用的机会少,天然的就只适合短期记忆,记不住也罢,并不代表什么。
现在有了互联网,以前的观点就更得改了,尽管也有必要记一些东西,尽管也会觉得记些东西也有乐趣。说楼主题简单但又没给出代码的,都是在摆谱。下次建议网友再开一个帖子,悄悄把费玛大定理塞进去要他/她证明,估计遇到这些家伙也会说很easy。