Myf's Blog


  • 首页

  • 归档

  • 标签

  • 留言

  • 搜索

Sublime Text 3中编译和运行Java程序

发表于 2016-05-05   |     |   阅读次数

在用Android Studio时,突然想检测一段java算法是否正确,但在as里运行还要加log,或者新建工程很是麻烦。有强迫症的我搜罗了一下,原来Sublime可以直接编译和运行Java程序,而且在不久之前也发现了sublime浏览代码的方便,下面就介绍该如何实现。

  1. 在Sublime中选择 工具>编译系统>新编译系统
    清空原来内容,输入下面内容
    1
    2
    3
    4
    5
    6
    7
    {
    "shell_cmd": "runJava.bat \"$file\"",
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "selector": "source.java",
    //"encoding": "GBK"
    "encoding": "UTF-8"
    }

保存为MyJava.sublime-build

  1. 在Jdk目录下,默认C:\Program Files\Java\jdk1.8.0_74\bin创建txt文件,文件名改runJava.bat,里面写入下面内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @ECHO OFF
    cd %~dp1
    ECHO Compiling %~nx1.......
    IF EXIST %~n1.class (
    DEL %~n1.class
    )
    javac %~nx1
    IF EXIST %~n1.class (
    ECHO -----------OUTPUT-----------
    java %~n1
    )
  2. 在Sublime中打开 工具>编译系统,选中刚才创建的编译系统MyJava,现在可以 按Ctrl + B 运行java代码了。

    1
    2
    3
    4
    5
    6
    7
    public class test 
    {
    public static void main(String args[])
    {
    System.out.println("Hello Java!");
    }
    }
  3. 问题点
    如果遇到下面问题,先检查一下你保存的java文件名和类名是否一致

    1
    [decode error - output not utf-8]

Android数据库 SQLite的基本用法

发表于 2016-05-05   |     |   阅读次数

记录自己对SQLite的用法

1. 获取数据库,创建表格
创建数据库有两种方法
第一种继承SQLiteOpenHelper,重写onCreate方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class SqliteHelper extends SQLiteOpenHelper {

final static String TABLE_NAME = "mytable";
final static String CREATE_TABLE = "create table if not exists "+TABLE_NAME+"("
+ "_id integer primary key autoincrement,"
+ "data1 text,"
+ "data2 integer,"
+ "data3 integer,"
+ "data4 integer)";
...
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}
}

1
2
3
4
final static String DB_NAME = "database.db";
myHelper = new SqliteHelper(context, DB_NAME, null, 1);

SQLiteDatabase db =myHelper.getWritableDatabase();

第二种
使用Context.openOrCreateDatabase 与 SQLiteDatabase.openOrCreateDatabase(本质上完成的功能都一样),打开或者创建一个数据库。它会自动去检测是否存在这个数据库,如果存在则打开,不存在则创建一个数据库;创建成功则返回一个SQLiteDatabase对象,否则抛出异常FileNotFoundException。

1
2
3
SQLiteDatabase db = context.openOrCreateDatabase(DB_NAME,Context.MODE_PRIVATE, null);

db.execSQL(CREATE_TABLE);

2 数据库操作,增删改查
数据库使用完要调用close
增加一条数据

1
2
3
4
5
6
7
8
9
10
11
12
  public void insert(String d1, int d2, int d3, int d4) {
SQLiteDatabase db = myHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("data1", d1);
values.put("data2", d2);
values.put("data3", d3);
values.put("data3", d4);
db.insert(TABLE_NAME, null, values);
//SQL语句方法
//db.execSQL("insert into "+TABLE_NAME+"(data1,data2,data3,data4) values('d1',d2,d3,d4)");
db.close();
}

删除一条最新数据,先查找整个数据库,再指向最后一条数据的id

1
2
3
4
5
6
7
8
9
10
11
12
13
  public void delete(int index) {
SQLiteDatabase db = myHelper.getWritableDatabase();
Cursor cursor = db.query(TABLE_NAME,
new String[]{"_id"},
null,null,null,null,null);
cursor.moveToLast();
String id=cursor.getString(cursor.getColumnIndex("_id"));

db.delete(TABLE_NAME,"_id=?",new String[]{id});
//SQL语句
//db.execSQL("delete from "+TABLE_NAME+" where _id = "+id);
db.close();
}

删除表中所有数据

1
2
3
4
5
6
7
8
9
  public void deleteAll() {
SQLiteDatabase db = myHelper.getWritableDatabase();

db.delete(TABLE_NAME, null, null);
//SQL语句
//db.execSQL("delete from "+TABLE_NAME);
db.close();

}

修改_id=1的数据

1
2
3
4
5
6
7
8
9
10
  public void update(String d1,int d2) {
SQLiteDatabase db = myHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("data1", d1);

db.update("usertable",values,"_id=?","1");
//SQL语句
//db.execSQL("update "+TABLE_NAME+" set data1 = 'd1',data2 = d2 where id = 1");
db.close();
}

读取表中所有数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  public ArrayList getData() {
SQLiteDatabase db = myHelper.getWritableDatabase();
Cursor cursor = db.query(TABLE_NAME,
null,
null,//可增加条件,如"_id = 1 AND data1 = 'name'"
null,null,null,null);
//SQL语句
//db.execSQL("select * from "+TABLE_NAME);无返回值,所以不知该如何操作

ArrayList arrList=new ArrayList();
while(cursor.moveToNext()){

String d1=cursor.getString(cursor.getColumnIndex("data1"));
int d2=cursor.getInt(cursor.getColumnIndex("data2"));
int d3=cursor.getInt(cursor.getColumnIndex("data3"));
int d4=cursor.getInt(cursor.getColumnIndex("data4"));
MyData myData= new MyData(d1,d2,d3,d4);
arrList.add(myData);
}
db.close();
return arrList;
}

分享批处理:替换文件名中的制定字符

发表于 2016-05-03   |     |   阅读次数
  1. 新建.txt文件把下面代码粘贴进去保存
    @echo off& setlocal enabledelayedexpansion
    for /f "delims=" %%1 in ('dir /a /b') do (set wind=%%1
    ren "%%~1" "!wind:aaaaaaaa=bbbbbb!")
    
    aaaaaaaa是替换前的字符,bbbbbb是是替换后的字符
  2. 保存后把.txt文件后缀直接改成.bat,拷贝到你的文件目录下,双击运行即可。

使用HEXO在github部署静态博客

发表于 2016-04-26   |     |   阅读次数

刚刚建好博客,就像试着发布一篇文章,那就记录下建立博客的过程吧,初次发布有很多不熟悉,还有许多地方需要学习,希望大家多多指点

工具/准备

win7-64位
安装Git
安装Node.js
注册github帐号

创建本地博客

安装Hexo

进入 git bash
输入命令:npm install -g hexo

创建Hexo文件夹

在任意目录下新建文件夹(如D:/HexoBlog),右击文件夹选择Git Bash Here
输入命令:
hexo init
npm install
hexo generate
hexo server
此时可以在浏览器中输入 localhost:4000 查看,一个本地博客生成完毕

把博客部署到github上

  1. 登录github后点击 New repository,

    填写Repository name格式必须固定,然后点Create repository,

    点击刚创建好的github.io文件复制里面的地址

  2. 进到D:/HexoBlog目录下,打开_config.yml

    1
    2
    3
    4
    5
    deploy:
    type: git
    \#repository: https://github.com/myfdeveloper/myfdeveloper.github.io.git
    repository: git@github.com:myfdeveloper/myfdeveloper.github.io.git ##不用每次输入帐号密码
    branch: master
  3. 修改文件里面的deploy

  4. 设置SSH Keys
    先删除.ssh下的文件,不存在可以不理
  5. 输入命令(你注册github时候用的邮箱):ssh-keygen -t rsa -C “XXX@163.com”
  6. 提示输入时可直接按回车
  7. 输入命令: ssh-agent -s
  8. 输入命令: ssh-add ~/.ssh/idrsa
  9. 输入命令:eval `ssh-agent -s`
  10. 输入命令:ssh-add
  11. 用命令复制SSH key: clip < ~/.ssh/id_rsa.pub
  12. 把ssh key粘贴至github,点添加,此时会要求你输入github密码

  13. 成功后输入命令ssh -T git@github.com,忽略警告输入yes
  14. 输入命令:
    hexo g
    hexo d

    如果遇到上面这种问题(安装时需要等) npm install hexo-deployer-git –save

    如果遇到上面这种问题,在输入命令git init,再部署一遍

    如果遇到上面这个问题,如下图,把前面的空格删了再按tab对齐,注意冒号后面也需要加上空格

  15. 如果出现错误要你输入username,则输入命令:
    git config –global user.name [username](github用户名)
    git config –global user.email [email](github注册邮箱)
    再来一次hexo g,hexo d。
    当看到,恭喜你完成了

  16. 完成,到了这步你在浏览器中输入myfdeveloper.github.io就能看到你的主页了

    发布博客

    在命令行里输入:hexo new “test”
    (每次修改玩都需要hexo g,hexo d,来完成部署)
    此时在E:\hexoblog\source_posts目录下就会生成MD文件,你就可以在这个文件中写你的内容了,部署完后进入浏览器刷新,已经能看到你新发布的博客了
    参考自 http://jingyan.baidu.com/article/d8072ac47aca0fec95cefd2d.html

    更换hexo主题

    Next主题主题来源
    连接是NexT的官网,主题使用和配置都讲的很详细
    包括多说评论,站内统计,站内搜索等都有详细讲到,我在这就不重复了

撰写博客

由于目前流行的是markdown语言来编写博客,它属于很简单的标记语言,因此选择一个合适自己的markdown编辑器是第一步,不需要自己手打格式。
好用的编辑器有很多,百度一下会有很多,我用的是其中之一 MarkdownPad 2,好处是自带图床,可以在文中直接插入本地图片。
不想多安装一个软件的可以使用在线版本的如dillinger。
当你希望在不同的电脑写博客又不想装环境,那简书也不错,也是使用在线的markdown编辑,回头可以自己在整理到静态博客里。
手机版本的有markdownX。

使用markdown pad2的一些小提示

  1. 特殊符号:如”`“,在md里属于特殊字符,得在前面加上转义字符“\”
  2. 插入代码:需要修改下面选项,不然达不到理想效果
  3. _post下至少得有一篇文章,不然next会报错无法加载
  4. 删除或者修改_post下的文章,先hexo s看看,没问题就可以部署了

常用命令

  1. 新建一篇文章:hexo new “postname”
    会在source/_post下生成md文件,直接编辑该文件提交即可
  2. 新建一个页面:hexo new page “pagename”
    会在source下生成文件夹,该目录下默认index.md文件
    在\themes\next_config.yml下添加pagename,把新建的菜单和pagename绑定在一起,在\themes\next\languages下添加字段
    menu:
    home: /
    #categories: /categories
    #about: /about
    archives: /archives
    tags: /tags
    pagename: /pagename
    #commonweal: /404.html
    
  3. hexo g,hexo d可以简写成hexo g -d

其他命令

Mao youfeng

Mao youfeng

4 日志
4 标签
© 2016 Mao youfeng
由 Hexo 强力驱动
主题 - NexT.Mist