ADA(Application Data Area)を読み書きするサンプルコード(Main.java)。
applicationおよびorganizationのディレクトリにファイルを”test”という文字を含むファイルを生成したのち、それぞれ読み出している。
正しく動作した場合、画面上に”=====================”が2回表示され、それぞれの下にsuccess”の文字が2回表示される
applicationおよびorganizationのディレクトリにファイルを”test”という文字を含むファイルを生成したのち、それぞれ読み出している。
正しく動作した場合、画面上に”=====================”が2回表示され、それぞれの下にsuccess”の文字が2回表示される
本サンプルコードが意図したとおりに動作するために必要な条件を以下にリストアップする。
- bluray.Main.permという名称の署名つき
Main.java
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.BufferedReader;
import javax.tv.xlet.Xlet;
import javax.tv.xlet.XletContext;
import org.havi.ui.HScene;
import org.havi.ui.HSceneFactory;
import org.havi.ui.HScreen;
public class Main extends Component implements Xlet{
private HScene hs;
private XletContext xc;
String ada_root = System.getProperty("dvb.persistent.root");
String fs = System.getProperty("file.separator");
String orgID;
String appID;
String appPath,orgPath;
Graphics g;
public void initXlet(XletContext context){
xc = context; // XletContextを保持
orgID = (String) xc.getXletProperty("dvb.org.id");
appID = (String) xc.getXletProperty("dvb.app.id");
orgPath = ada_root + fs + orgID;
appPath = orgPath + fs + appID;
hs= HSceneFactory.getInstance().getFullScreenScene(
HScreen.getDefaultHScreen().getDefaultHGraphicsDevice());
setBounds(hs.getBounds());
hs.add(this);
hs.setVisible(true);
requestFocus();
g= this.getGraphics();
g.setColor(new Color(255,255,255));
String writeText = "test";
String readText = "****";
g.drawString("Test ===============================================", 100, 100);
readText = readFile(appPath+fs+"text.txt");
if( readText.equals(writeText) ){
g.drawString("read ["+readText+"] from "+appPath+fs+"text.txt: " +
"success", 100, 200);
} else {
g.drawString("read ["+readText+"] from "+appPath+fs+"text.txt: " +
"fail", 100, 200);
}
readText = "****";
g.drawString("===============================================", 100, 300);
readText = readFile(orgPath+fs+"text.txt");
if( readText.equals(writeText) ){
g.drawString("read ["+readText+"] from "+orgPath+fs+"text.txt: " +
"success", 100, 400);
} else {
g.drawString("read ["+readText+"] from "+orgPath+fs+"text.txt: " +
"fail", 100, 400);
}
}
String readFile(String path) {
FileInputStream fis;
String s = null;
try {
fis = new FileInputStream(path);
BufferedReader r = new BufferedReader( new InputStreamReader(fis));
s = r.readLine();
r.close();
} catch (Exception e){
e.printStackTrace();
}
return s;
}
boolean writeFile(String path, String s) {
FileOutputStream fos;
try {
fos = new FileOutputStream(path);
BufferedWriter w = new BufferedWriter( new OutputStreamWriter(fos));
w.write(s);
w.close();
} catch (Exception e){ return false;}
return true;
}
public void startXlet(){ }
public void pauseXlet(){ }
public void destroyXlet(boolean unconditional){ }
}