ファイルIOの話

おじさんやで(´・ω・`)

 

システムというか個人(自分)で使う機能とかサービスでDB構築をするのって

結構面倒なので出力ファイルとかに擬似DBよく作るんだけど

 

その時とかによく使うファイルIOを書き留めておく。

  

package fileIO;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

public class FileIO {


public static void main(String[] args) {

//ファイル取り込み
String inPath = "C:\\test_text\\test.txt";
String data = myFileReader(inPath);

 

//ファイル書き出し
String outPath = "C:\\test_text\\outtest.txt";
myFileAddWriter(data+"\r\n", outPath);
}

public static String myFileReader(String filePath){
StringBuilder retSB = new StringBuilder();
try {
File file = new File(filePath);
FileInputStream input = new FileInputStream(file);
InputStreamReader stream = new InputStreamReader(input,"SJIS");
BufferedReader bR = new BufferedReader(stream);

String hantei = bR.readLine();

while(hantei != null){
retSB.append(hantei + "\r\n");
hantei = bR.readLine();
}

bR.close();
} catch (Exception e) {
e.printStackTrace();
}

return retSB.toString();
}

public static void myFileWriter(String dataString,String outputPAth){
FileWriter fW;
try {
fW = new FileWriter(outputPAth);
fW.write(dataString);
fW.close();
} catch (IOException e) {
e.printStackTrace();
}

}

public static void myFileAddWriter(String dataString,String outputPAth){
FileWriter fW;
try {
fW = new FileWriter(outputPAth,true);
fW.write(dataString);
fW.close();
} catch (IOException e) {
e.printStackTrace();
}

}

}

 

これソースべた張りした時左に寄るのどうにかしたいなぁ…(´ε`;)ウーン…

 

またねノシ

出社・退社スクリプトの話

おじさんです(´・ω・`)

 

新社会人になってツイッターで出社と退社を呟くようになったんだが

 

とうとうめんどくさくなってきたので全自動化してみようと思う。

 

まずはtwitterのアカウントを適当に用意する。

 

次は

apps.twitter.com

ここに作成したアカウントを登録しよう

 

細かく説明しようと思ったが、すまない ここを参考にしてくれ

丁寧・親切・直球に書いてくれててわかりやすいぞ

gomyownway.hatenablog.com

 

後はソースコードをラズパイに持っていって動かそう

 

おじさんはソースを実行する時コマンドライン引数としてツイート内容を与えるように変更しているよ(後、クラス名も変えてるよ)

 

jarと先程のソースを置いたところでコンパイルしよう

 

javac -cp twitter4j-core-4.0.4.jar Tweet.java

 

コンパイルできたら実行するぞ

 

java -cp .:twitter4j-core-4.0.4.jar Tweet test

 

f:id:da-machi:20170724235629j:plain

 

こんな感じでツイートてきた ライブラリって有能

 

次はシェルスクリプト(出社スクリプト)を書くぞ

syussya.sh

 

#!bin/sh

cd /home/pi/~(ソースのあるディレクトリ)

java -cp .:twitter4j-core-4.0.4.jar Tweet 出社

cd

 

完成!!(同じファイルの退社版も作ってます。)

 ※お分かりいただけただろうか、実行ディレクトリのパスを試行錯誤したが

わからずにcdを連打した力技汚スクリプトだ(今後改善します。)

 

後は、定時にスクリプトを実行するようにcrontab設定するぞ

 

crontab -e で設定ファイルが開く(よく忘れる)

 

www.server-memo.net

細かい書式はここに載ってるぞ! よくお世話になるサイトだ(覚書)

 

作りながらブログ書いたから結合動作チェックは 行えてない

 

初めてBotっぽいものを作ったが案外簡単だったんでどんどん機能を載せて行きたいと思う おじさんであった(´・ω・`)

 

 

手遊び

友人と昼飯を食っていると (ワイ)ふざけたものを作った→(友人)解きたい 

の流れから問題を出すことになった。

 

文字数:64文字の文章を何らかの方法で暗号化した。

 

暗号化を行った時刻は以下のとおりである。
java.util.Date toString():Thu Jul 06 21:31:44 JST 2017
java.util.Date getTime():1499344304406

 

-----暗号化後-----
-39119-102-39120-126-39119-101-39120-126-39119-96-39120-127-39119-76-39119-76-39119-95-39118119-36-115-101-39119-123-39120127-39119-115-35-105-91-39119-95-39120118-39119-127-39119-88-39119-100-39118119-37-75121-39119-95-39119124-39119-102-39120-128-39120124-39119-123-39120126-39119-115-39119-96-39119-115-38-80-127-39120-120-39118119-39119-109-39119-119-39119-91-39119-127-39119-98-39119-96-39119-123-36-111-82-39119-125-39119-102-39119-123-39120-126-39119-90-39118119-39119120-39120122-39119-115-39119124-39119-119-39119-109-39120120-39119-92-39119-122-39120-127-39119-79-39119-115-39119-121-39120-126-39118120

補足:復号化すると64文字の意味のある文章になる。

 

 

とりあえずなんか作った。

とりあえずノリと勢いでCSVファイルを取り扱えるライブラリ(jar)を作ってみた。

 

仕様はガバガバだし機能も少ないがシンプルにCSVをオブジェクトとして扱えるようにしてみたものである。

 

CSVmanager.zip 中には CSVmanager.jar とjavadocが入ってます。

今後、気が乗ったら改良していきます。

開発 - Google ドライブ

おじさんはブログをはじめました。

どうも最近SEになったおじさんです。

 

ブログを書いていきます。()

 

備忘録(備忘録)的なブログですのでよしなに

 

突然ですが、「夢を描けば技術は必ず付いてくる」おじさんはこの言葉が大好きです。

人生の心訓ポジに位置する言葉です。

 

まぁ、とりあえず【夢を描きましょう】。

 

今回描く夢は「.exe」ファイルを作成し実行するという夢です。

 

とりあえず必要な材料は

eclipse(pleiades-4.6.3-java-win-64bit-jre_20170422)

・exewrap1.1.6

 

手順はeclipseで適当なプログラムをこしらえる。

eclipseで)プロジェクトを選択してエクスポート

>JARファイル[次へ]>エクスポート先を選択[次へ]

>[次へ]>エントリーポイントクラスの指定[完了]

 

次にexewrapを適当なディレクトリに解凍し同階層にエクスポートした~.jarを持ってきてcmdを開き解凍ディレクトリまで移動し「>exewrap.exe ~.jar」を実行

f:id:da-machi:20170604224348j:plain

 

 こんな感じになるので出力された~.exe(今回はexportTest.exe)を実行。

 

 今回作成したexeの種類はコンソールアプリケーションなので実行するとcmdが開き動作します。

f:id:da-machi:20170604224843j:plain

こんな感じです

 

本日の夢、達成!

  

今回作成したプログラムソースその1(ExportTestクラス)

 public class ExportTest {

 public ExportTest() {

 }

  //出力するだけ
  public void printTest(String str){
  System.out.println("テスト出力:" + str);
 }

}

  

その2(MainTest00クラス)

 public class MainTest00 {

 public static void main(String[] args) {

  ExportTest exTest = new ExportTest();
  String str = "test";

  for (int i = 0; i < 100; i++) {
   //回数+test文字列が表示される。
   exTest.printTest(i + str);
   try {
     //1000ミリ秒(1秒)プログラム停止
    Thread.sleep(1000);
   } catch (Exception e) {
    System.out.println(e);
   }
  }
 }
}

 

 ※今回の失敗点

x86が32bit、x64が64bitなんですねぇ…逆で覚えてて実行ファイル出力がうまく行ってない事に気づいて無くて20分位無駄にしました。(やっかいなことに失敗してても実行ファイルは出力されるみたいです…)

f:id:da-machi:20170604231836j:plain

not foundって書いとるやんけ

 

みんなは出力ステータス、ちゃんと見ような?(すっとぼけ)

 

では、またの( ˙灬˙ ) ノシ