A. java 程序急救
這個跟java中的編碼有關。
writeInt() :將一個 int 值以 4-byte 值形式寫入基礎輸出流中,先寫入高位元組。
dout.writeFloat():使用 Float 類中的 floatToIntBits 方法將 float 參數轉換為一個 int 值,然後將該 int 值以 4-byte 值形式寫入基礎輸出流中,先寫入高位元組。
dout.writeBoolean():將一個 boolean 值以 1-byte 值形式寫入基礎輸出流。值 true 以值 (byte)1 的形式被寫出;值 false 以值 (byte)0 的形式被寫出。
將這樣的數據寫入文本文件(XP中.txt文件默認是Ansi),自然是亂碼。
如果想要輸出結果為
123
2.3
true
有一種方法,可以先把這些數據轉換成字元串,再用writeBytes()寫入。
換行的話,再
加入
BufferedWriter deee = new BufferedWriter(new FileWriter(file1));
deee.newLine();
deee.flush();
deee.close();
這段代碼,我自己調試過了。。。
import java.io.*;
public class Test
{
public static void main(String[] args)
{
int ch;
InputStreamReader iin=new InputStreamReader(System.in);
BufferedReader bin =new BufferedReader(iin);
File file1=new File("dataFile.txt");
try
{
FileOutputStream fout= new FileOutputStream(file1);
BufferedWriter deee = new BufferedWriter(new FileWriter(file1));
System.out.println(" 輸入整數");
int i=Integer.parseInt(bin.readLine());
System.out.println(" 輸入浮點數");
float f=Float.parseFloat(bin.readLine());
System.out.println(" 輸入布爾量");
boolean b=new Boolean(bin.readLine()).booleanValue();
deee.write(""+i);
deee.newLine();
deee.write(""+f);
deee.newLine();
deee.write(""+b);
deee.newLine();
deee.flush();
deee.close();
}
catch (FileNotFoundException e)
{ System.out.println(e);}
catch (IOException e)
{ System.out.println(e);}
}
}
B. 急救!!怎樣在vrml中調用一個Java程序
這個問題你應該去問了解vrml的版塊。
如果問JAVA如何調用其他的還可以在這里問問。
只找到如下資料。也不知道有用沒
VRML與JAVA在網路課件交互運用虛擬現實建模語言(Virtual Reality Modeling Language 即VRML)和Java語言都是 可執行的代碼「技術,通過網路傳輸的只是一個很小的描述文件(指令性數據集),客戶端通過本地的VRML瀏覽器、JAVA虛擬機交互地訪問這些文件並解釋執行。將Java與VRML結合,能夠很好地實現網路多媒體課件技術:使用VRML進行場景構造,內嵌用Java編寫的程序設計實現對象的編程行為。這使VRML在網上創建充滿真實感的三維虛擬世界,為用戶提供一種自然的、身臨其境的體驗方式,包括交互性、動態效果、連續性及參與感,而這將是未來網路教學的主要形式之一。
1、 VRML簡單交互
VRML簡單交互,即VRML空間中各節點間數據交互。VRML有統一的數據傳輸介面和完善的屬性集合和事件集合,可接收感測器節點發送過來的數值,並根據所對應的介面屬性域設置提取數據、改變自身的屬性值、觸發事件進而改變自己在空間中的位置、外型和顯示效果,還可以將處理後的數據送到輸出域,傳遞給其他模型節點。各節點通過介面域的相互路由(route to)實現數據傳輸,路由的映射關系自由,但介面域的數據規格必須嚴格一致。
2、VRML擴展交互
VRML本身交互機制是無法構建一個大型多媒體課件的,因為VRML本身不能完成普通程序設計中的轉折、分支、循環等基本特徵。因此實際系統設計中,可利用Java語言提供的強大網路編程能力,編寫與遠程系統通信和共享能力處理等功能的應用程序。Java對VRML的所有支持都通過附加的封裝類實現。通過這些類,Java程序就能夠訪問VRML場景、接受和發送事件、從頁面上得到VRML對象等,實現對VRML場景的完全控制。[2]根據訪問方式的不同,又可分為:腳本編程介面SAI(Script Authoring Interface) 交互與外部編程介面EAI(EAI External Authoring Interface) 交互。
2.1腳本編程介面SAI交互
SAI交互即使用事件機制和路由利用Script節點實現VRML與 Java(或JavaScript)的交互。首先,通過eventIn將事件傳至Script節點中的腳本;其次,在Script節點中的腳本中調用相應的Java類(或JavaScript)進行處理;最後,通過eventOut將結果送回到VRML場景以實現動畫或交互。
VRML的Script節點是一種控制感測器和內插器的節點,通過它可以定義和改變場景中對象的外觀和行為。Script節點的URL域可以包含一段JavaScript程序或者是鏈接的一個JavaClass.SCRIPT節點可放置在場景的任何地方,用DEF命名它,從而完成事件的刪除成傳遞。SCRIPT節點的欄位是由用戶延伸的,到達這些欄位的欄位會自動移到和SCRIPT節點相關程序中。另外,SCRIPT節點也能夠通過編寫合適程序腳本,動態生成(改變)三維造型並綁定合適的感應器和內插器。
2.1. 1Java通過Script類(vrml.node包)與Script結點建立聯系,控制VRML結點
首先,定義Script節點中的各域域值,設置路由(Route)使VRML中的其它節點與Script節點聯系起來。當與Script節點有聯系的節點發生事件時,事件通過路由傳給Script節點的eventIn域,Script節點則通過url域中指定的地址找到java類。
然後,Java類開始工作,最先執行的是initialize()方法:在initialize()方法中必須獲得Script節點中eventIn或field域的值,或者把java中的值返回給Script中的eventOut域。Script類提供的方法有: getField(fieldName); getEventIn(eventInName); getEventOut(eventOutName); 作為參數的fieldName、eventInName、eventOutName要與Script節點中定義的名稱相符合,對應的Field類的子類(vrml.filed包)與Script節點中定義的各種Type類型一致。它提供getValue()和setValue()方法。
再則,通過Script類提供的processEvent(Event p0)或processEvents(int p0, Event[] p1)方法來捕獲Script節點傳遞的事件。processEvent和processEvents方法是所有外部事件公共的輸入點。Java程序通過替代這兩個方法對事件做出相應的處理。Vrml包中Event類的getName()方法返回事件名稱(該名稱與Script節點中發生該事件的eventInName相同),確定發生的事件,從而做出相應的處理;Event類的getValue()方法則返回一個ConstField類的實例 (它是Script節點中發生該事件的eventIn域),ConstField類是Field類的子類,它沒有setValue()方法,因而只能取出Script節點中eventIn域的值,而不能修改。
最後,所有事件處理完後,程序就調用Script類中的eventsProcessed()方法,在這兒可以加入用戶想要實現的動畫、交互等各種效果。Script類中的shutdown()方法實現離開VRML文件的方式。
通過Script節點,能java程序處理過的數據返回給VRML文件。通過初始化時getEventOut()得到的變數的setValue()方法將值傳遞給Script節點的eventOut域,再通過路由傳遞給VRML中的各類節點,完成整個通信過程。
2.1.2 Java通過Script節點和Node類(vrml.node包)直接修改VRML節點
通過Script節點和路由,同時又必須在Script節點的eventOut域設置控制點,java程序才能改變VRML文件中節點值。當有大量數據需要傳送時,這種給每個數據設置一個eventOut域加一個路由的方法顯然是相當麻煩的。因此java,提出直接修改節點的方法。
Java直接修改場景中的節點,仍然要用到Script節點。首先在定義Script節點時,將eventOut域改為field域,fieldType定義為SFNode,具體格式如下:
「field SFNode fieldname USE nodeName」。 「nodeName」為要修改的節點名稱(在VRML中由DEF語句命名),產生一個指向名為nodeName節點的指針。執行初始化時通過getField()方法得到相應的SFNode類的一個實例,通過getValue()方法得到該類的值,這里它的值恰好是名稱為nodeName的Node類的實例,然後通過Node類提供的方法直接修改節點。getExposedField(String p0)、getEventIn(String p0)方法,分別得到節點的field和eventIn域,並把結果作為Field類;再通過各Field類的子類提供的方法讀取和設置值,將設置結果直接返回節點,不用再設置路由,從而達到了直接修改節點的目的。
Node類還提供了getEventOut(String p0)方法,用它可以得到節點的eventOut域,與前兩個方法不同,它得到的結果是一個不能修改的Field類,即Field類的子類ConstField類。 使用改進後的方法,可以有效的縮減代碼長度,節省VRML文件的計算時間,提高VRML場景的生成速度。
2.1.3 Java通過Script節點和Browser類(vrml包)直接創建VRML場景
設置Group節點的addChindren和removeChindren的值來可添加和刪除具體節點,但還無法操作路由。當有大量不同的並相互關聯的節點要通過java在VRML中創建時,工作量是難以想像的。為了滿足這一要求,Script類繼承BaseNode(vrml包)類,BaseNode類中定義了兩個方法:getBrowser()和getType()。getBrowser()方法將會返回BaseNode類所處的瀏覽器。Browser類存在於vrml包中,它提供了一系列方法來對整個VRML文件進行控制。 如:
(1)、添加和刪除路由:addRoute(SFNode fromNode,SFString fromEventOut,SFNode toNode,SFString toEventIn),deleteRoute(SFNode fromNode,SFString fromEventOut,SFNode toNode,SFString toEventIn)
(2)、直接創建VRML:createVrmlFromString(SFString vrmlSyntax)(把要創建的節點語法以字元串的方式作為參數寫入)
(3)、在VRML中建立相應節點:createVrmlFromURL(MFString url,SFNode node,SFString event)(該方法的提供節點語法的參數是放在url地址所指出的VRML文件中,瀏覽器通過url找到要加入的節點,把它加入到node參數指定的節點中event參數指定的eventIn域中)
(4)、用指定的節點來替換整個VRML文件:replaceWorld(MFNode nodes)
用url指定的另一個VRML文件來替換當前的文件:loadURL(MFString url,MFString parameter)。
Script類執行initialize()方法時,得到瀏覽器實例,然後processEvent(Event e)方法執行時使用上述方法建立、修改VRML場景。 通過改進,不僅VRML文件代碼長度縮減,java程序代碼也大大減少,進一步提高了VRML場景的生成速度。
2.2外部編程介面(EAI)交互
SAI交互VRML離不開Script節點和Script類(vrml.node包)。為了實現通信功能編寫的java類都必須繼承自Script類。但java不支持多繼承,如果用Applet操控VRML場景, java程序要繼承Script類的方法相當復雜。特別是要把VRML文件與Applet集成在同一個HTML頁面時,用Script類來實現頗為困難,而且程序代碼冗長、可擴展性差。
VRML97標准提供的EAI定義了外部環境怎樣通過VRML現存的事件驅動模式來訪問VRML內部的節點的一系列方法,實現了Applet與VRML場景的通信。EAI包含瀏覽器腳本介面的全部功能,例如查詢瀏覽器的狀態,增加或刪除路由,生成新的節點等功能。
Java主要使用Browser和Node兩個類(vrml.external包),以及其它一些如處理eventIn域和eventOut域的各個屬性類(EventIn*、EventOut*)和處理例外的各種*Exception類完成對EAI的描述。
Browser類提供了三個方法:getBrowser(Applet pApplet)、getBrowser(Applet pApplet,String frameName,int index)和getNode(String name)方法。前兩個方法是靜態方法,直接在Applet類中使用這兩個方法得到Applet類和VRML所在的瀏覽器類的實例。getNode()方法可以直接得到VRML文件的具體節點(Node類)的實例,用InLine語句嵌入在VRML文件中的各個節點是用getNode()方法是無法得到的。這里的Node類與方法一的Node類是完全不同的,它用自己的getEventIn()和getEventOut()方法來得到VRML節點的各個域。然後使用返回的Event*的實例的getValue()和setValue()方法來控制具體的值。EventIn*類僅提供了設置值的setValue()方法;EventOut*類相對復雜,不僅提供了getValue()方法來獲得當前值,還提供了監聽EventOut域的介面??EventOutObserver,隨時監聽VRML節點中是否有新的EventOut事件發生,一旦有新事件發生,通過替代該介面提供的callback(EventOut value,double timeStamp,Object data)方法響應事件。
通過Browser和Node類,可以拋棄Script節點和Script類甚至路由而現實對VRML文件的各種節點即Node類的各個實例直接操控。但getBrowser()方法的參數必須是Applet的實例,因而該方法只能通過Applet來控制VRML.
3.總結
VRML與其它實現三維場景的技術手段(如OpenGL,Cult3D,3DSMAX,Viewpoint)相比,具有語法簡單、三維建模功能強大、便於網上發布等優點。但由於VRML本身僅僅是一種標准,不可能滿足各行各業的所有需要。所以,高級交互功能的實現必須藉助於Java等功能強大的高級語言。這樣,可以有效地彌補VRML本身的一些不足(例如邏輯判斷、文件操作、鍵盤輸入、精確控制場景等),進而完善與HTML等其它媒體的交互,也可實現復雜的虛擬環境系統網路課件。
C. JAVA急救啊
LimitedQueue extends AbstractQueue {
size ;
LimitedQueue (int size){
size = size;
}
//覆蓋父類的方法
public ...(){
super....()//調用父類的方法,如果還需要父類的方法功能
}
}
當隊列已達到最大長度,則企圖向隊列存放數據對象的線程必須等待(阻塞)直到有線程從隊列中取走數據對象
這個問題就是線程編程的問題,參考Java的生產者與消費者的經典案例吧。
D. java急救
方法重載(overloading method) 是在一個類裡面,方法名字相同,而參數不同。返回類型可以相同也可以不同。
E. java 運行急救
1.工具→文件夾選項→查看
把「隱藏已知文件類型的擴展名」的勾去掉。此時你可以看見文件名為「hellochina.java.txt」,把.txt去掉,就變成 .java文件了。
2.不知道你有沒有設置classpath,如果沒有的話參照Java入門書籍設置一下,否則會報類找不到。
3.請教LZ,Java1.6的提示是中文么?還是你自己翻譯的?要是中文的話我也去下一個玩玩。
F. Java急救2
1-5 badcd
6-10 ddaac
11-15 cbcca
樓上的,你第五題寫錯了,不是c,應該選擇d
第十四題你也寫錯了,應該選擇c,而不是d
G. 簡單java編程,在線火速急救
先寫Animal,定義屬性為 Habitat 屬性和eat方法的類,再寫Mammal(添加方法proceMilk),Bird(添加layEgg的方法)類,使他們繼承於Animal,再根據類別使剩下的類分別繼承於Habitat 和eat的類,再Sparrows(麻雀)和bats(蝙蝠)添加fly的方法吧。。。
H. JAVA急救啊!! 1.System.in.skip(2);是什麼意思 2.還有try,catch用來干什麼的 3.(int)+ch什麼意思
1, System.in.skip(2);是跳過輸入流的2個位元組,簡單點你可以理解為不要最前面的2個字元
2 try cacth是用來處理程序運行過程中發生的exception的。程序員積極的處理從而可以保證程序面對意想不到的事情的時候能夠健壯運行
3 (int) ch,如果ch是字元型,那就是求字元類型ch的ASCII碼值,如果是數字類型,就是將ch強制轉換為int類型。
I. JAVA新手急救
/*
*MyShape.java
*/
public class MyShape{
public static void main(String[] args){
Circle myCir=new Circle(10);
Rectangle myRec=new Rectangle(10,10);
System.out.println(myCir);
System.out.println(myRec);
System.out.println("The sum of the two shapes' area is:"+myCir.area+myRec.area);
}
}
class Circle{
final float PI=3.1415926;
private float radius,area;
Circle(){
this(0);
}
Circle(float r){
radius=r;
}
public float getR(){
return radius;
}
public void setR(float r){
radius=r;
}
public float area(){
area=PI*radius*radius;
return area;
}
public String toString(){
return("The area of Circle is:"+area);
}
}
class Rectangle{
private float length,width,area;
Rectangle(){
this(0,0);
}
Rectangle(float newLen,float newWid){
lenth=newLen;
width=newWid;
}
public float getLen(){
return length;
}
public float getWid(){
return width;
}
public void setLen(float newLen){
length=newLen;
}
public void setWid(float newWid){
width=newWid;
}
public float area(){
area=length*width;
return area;
}
public String toString(){
return("The area of Rectangle is:"+area);
}
}
J. JAVA急救!!!各位大蝦幫下忙啊!!!
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JToolBar;
import java.awt.Rectangle;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import java.awt.Dimension;
public class mainFrame extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JMenuBar jJMenuBar = null;
private JMenu jMenu1 = null;
private JMenuItem jMenuItem1 = null;
private JMenuItem jMenuItem2 = null;
private JMenuItem jMenuItem3 = null;
private JToolBar jJToolBarBar = null;
private JButton jButton1 = null;
private JButton jButton2 = null;
/**
* This is the default constructor
*/
public mainFrame() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(300, 209);
this.setJMenuBar(getJJMenuBar());
this.setContentPane(getJContentPane());
this.setTitle("主窗體");
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJJToolBarBar(), null);
jContentPane.add(getJButton1(), null);
jContentPane.add(getJButton2(), null);
}
return jContentPane;
}
/**
* This method initializes jJMenuBar
*
* @return javax.swing.JMenuBar
*/
private JMenuBar getJJMenuBar() {
if (jJMenuBar == null) {
jJMenuBar = new JMenuBar();
jJMenuBar.add(getJMenu1());
}
return jJMenuBar;
}
/**
* This method initializes jMenu1
*
* @return javax.swing.JMenu
*/
private JMenu getJMenu1() {
if (jMenu1 == null) {
jMenu1 = new JMenu();
jMenu1.setText("文件");
jMenu1.add(getJMenuItem1());
jMenu1.add(getJMenuItem2());
jMenu1.add(getJMenuItem3());
}
return jMenu1;
}
/**
* This method initializes jMenuItem1
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItem1() {
if (jMenuItem1 == null) {
jMenuItem1 = new JMenuItem();
jMenuItem1.setText("新建");
}
return jMenuItem1;
}
/**
* This method initializes jMenuItem2
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItem2() {
if (jMenuItem2 == null) {
jMenuItem2 = new JMenuItem();
jMenuItem2.setText("保存");
}
return jMenuItem2;
}
/**
* This method initializes jMenuItem3
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItem3() {
if (jMenuItem3 == null) {
jMenuItem3 = new JMenuItem();
jMenuItem3.setText("退出");
jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
System.exit(0);
}
});
}
return jMenuItem3;
}
/**
* This method initializes jJToolBarBar
*
* @return javax.swing.JToolBar
*/
private JToolBar getJJToolBarBar() {
if (jJToolBarBar == null) {
jJToolBarBar = new JToolBar();
jJToolBarBar.setBounds(new Rectangle(268, 1, 22, 91));
}
return jJToolBarBar;
}
/**
* This method initializes jButton1
*
* @return javax.swing.JButton
*/
private JButton getJButton1() {
if (jButton1 == null) {
jButton1 = new JButton();
jButton1.setIcon(new ImageIcon("H:/1.jpg"));
jButton1.setBounds(new Rectangle(-6, 0, 296, 79));
}
return jButton1;
}
/**
* This method initializes jButton2
*
* @return javax.swing.JButton
*/
private JButton getJButton2() {
if (jButton2 == null) {
jButton2 = new JButton();
jButton2.setBounds(new Rectangle(-5, 81, 297, 70));
jButton2.setIcon(new ImageIcon("H:/2.jpg"));
}
return jButton2;
}
} // @jve:decl-index=0:visual-constraint="10,10"
應該是這樣的了!!!