ServicesDemo – Using Android Services


To create a application to run in the background of other current activities, one needs to create a Service. The Service can run indefinitely (unbounded) or can run at the lifespan of the calling activity(bounded).
Please note that a Service has a different lifecycle than activities therefore have different methods. But to begin a service in the application a call to startService() which envokes the service onCreate() method and onStart() beginning running the service.
context.startService() | ->onCreate() – >onStartCommand() [service running]
Calling the applications stopService() method to stop the service.
context.stopService() | ->onDestroy() [service stops]
Something that we didn’t use in this example is bindService() which just calls the services onCreate() method but does not call the onStartCommand(). onBindService() is used to create persistance connection to the service.
context.onBindService() | ->onCreate() [service created]
This Services Demo is simple as it plays a audio file and by listening to click events of the buttons invokes the MyService service.

 

ServicesDemo.java

package com.example;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class ServicesDemo extends Activity implements OnClickListener {
  private static final String TAG = “ServicesDemo”;
  Button buttonStart, buttonStop;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    buttonStart = (Button) findViewById(R.id.buttonStart);
    buttonStop = (Button) findViewById(R.id.buttonStop);

    buttonStart.setOnClickListener(this);
    buttonStop.setOnClickListener(this);
  }

  public void onClick(View src) {
    switch (src.getId()) {
    case R.id.buttonStart:
      Log.d(TAG, “onClick: starting srvice”);
      startService(new Intent(this, MyService.class));
      break;
    case R.id.buttonStop:
      Log.d(TAG, “onClick: stopping srvice”);
      stopService(new Intent(this, MyService.class));
      break;
    }
  }
}

To understand the audiomedia player, please review the AudioDemo posted in this form. The custom MyService extends Service class and necessary to override various methods of its lifecycle ie onCreate(), onStartCommand(), or onDestroy()
MyService.java

package com.example;

import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;

public class MyService extends Service {
    private static final String TAG = “MyService”;
    MediaPlayer player;
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
    @Override
    public void onCreate() {
        Toast.makeText(this, “My Service Created”, Toast.LENGTH_LONG).show();
        Log.d(TAG, “onCreate”);
        player = MediaPlayer.create(this, R.raw.braincandy);
        player.setLooping(false); // Set looping
    }

    @Override
    public void onDestroy() {
        Toast.makeText(this, “My Service Stopped”, Toast.LENGTH_LONG).show();
        Log.d(TAG, “onDestroy”);
        player.stop();
    }
    @Override
    public void onStart(Intent intent, int startid) {
        Toast.makeText(this, “My Service Started”, Toast.LENGTH_LONG).show();
        Log.d(TAG, “onStart”);
        player.start();
    }
}

Necessary to let the AndroidManifest file know about your service <service android:enabled="true" android:name=".MyService" />
AndroidManifest.xml

<?xml version=”1.0″ encoding=”utf-8″?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android”
  package=”com.example” android:versionCode=”1″ android:versionName=”1.0″>
  <application android:icon=”@drawable/icon” android:label=”@string/app_name”>
    <activity android:name=”.ServicesDemo” android:label=”@string/app_name”>
      <intent-filter>
        <action android:name=”android.intent.action.MAIN” />
        <category android:name=”android.intent.category.LAUNCHER” />
      </intent-filter>
    </activity>
    <service android:enabled=”true” android:name=”.MyService” />
  </application>
  <uses-sdk android:minSdkVersion=”3″ />
</manifest>

main.xml

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
    android:orientation=”vertical”
    android:layout_width=”fill_parent”
    android:layout_height=”fill_parent”
    android:gravity=”center”>
<TextView 
    android:layout_width=”fill_parent”
    android:layout_height=”wrap_content” android:text=”Services Demo” android:gravity=”center” android:textSize=”20sp” android:padding=”20dp”/>
<Button android:layout_width=”wrap_content” android:layout_height=”wrap_content” android:id=”@+id/buttonStart” android:text=”Start”></Button>
<Button android:layout_width=”wrap_content” android:layout_height=”wrap_content” android:text=”Stop” android:id=”@+id/buttonStop”></Button>
</LinearLayout>

Output

image

Advertisements

20 câu “chạy làng” thường thấy của nam giới


 

Khi theo đuổi bạn, mỗi chàng có một cách khác nhau. Song hãy tin rằng khi cuộc tình qua đi, “kịch bản chia tay” của họ chỉ có… 20 câu bất hủ:
1. “Anh chưa sẵn sàng cho một mối quan hệ lúc này. Nhưng nếu sẵn sàng, em chắc chắn là người anh chọn”.
Bạn nên hiểu là: “Anh chưa sẵn sàng dành cả cuộc đời còn lại của mình để ngủ với chỉ một người. Nhưng nếu anh sẵn sàng, đó có thể là em”.
2. “Anh vẫn còn quan tâm đến em”.
Bạn nên hiểu là: “… Không đủ quan tâm để hò hẹn với em hay dành nhiều thời gian bên em, nhưng anh vẫn quan tâm!”
3. “Sau tất cả những chuyện này anh vẫn mong chúng mình là bạn và đi chơi với nhau”.
Bạn nên hiểu là: “… sau khi bị anh “đá”, em vẫn có thể giới thiệu cho anh mấy cô bạn nóng bỏng của em chứ?”.
4. “Lúc này đây anh thật sự cần tập trung cho việc học/ công việc/ Chúa… (ngàn lẻ một lý do!)”.
Bạn nên hiểu là: “Anh không nghĩ em có thể chấp nhận dễ chuyện chia tay này, song với những lý do như thế, em chẳng đôi co được đâu”.
5. “Anh sắp ra nước ngoài, nhưng anh sẽ gọi điện cho em ngay khi trở lại”.
Bạn nên hiểu là: “Anh cần phải thoát khỏi em, càng nhanh càng tốt”.
6. “Em tốt hơn anh nhiều…”.
Bạn nên hiểu là: “… Và anh biết anh tốt hơn em nhiều”.
7. “Thật vui vì đã biết em, nhưng anh nghĩ cả hai chúng mình cần dành thời gian bên những người khác nữa”.
Bạn nên hiểu là: “Anh đã gặp được người khác và anh muốn ở bên cô ấy hơn bên em”.
8. “Anh sợ ràng buộc…”.
Bạn nên hiểu là: “Anh sợ phải gắn bó cả đời với em”.
9. “Anh thấy ngột ngạt quá, anh chỉ cần chút yên tĩnh nghỉ ngơi thôi”.
Bạn nên hiểu là: “Em chõ mũi vào cuộc đời anh quá nhiều, đã đến lúc anh phải “mời” em ra”.
10. “Người đàn ông nào cưới được em quả thực rất may mắn”.
Bạn nên hiểu là: “Anh chỉ hy vọng mình không may đến thế!”.
11. “Anh nghĩ chúng mình cần gặp gỡ cả những người khác nữa và xem chuyện gì xảy ra”.
Bạn nên hiểu là: “Anh đã ngủ với người khác, và anh đang nói điều này trước khi em phát hiện ra thôi”.
12. “Anh vẫn muốn bên em, song anh cần nghỉ ngơi đôi chút”
Bạn nên hiểu là: “Anh đang đi tìm bạn tình mới, song vẫn muốn giữ em để “phòng xa”.
13. “Anh có rất nhiều việc phải làm lúc này”.
Bạn nên hiểu là: “Việc chính của anh là không ở bên em nữa”.
14. “Anh cảm thấy, với anh, em giống như một người bạn hơn là một người yêu”.
Bạn nên hiểu là: “Em không còn dễ thương như khi chúng mình bắt đầu hò hẹn nữa”.
15. “Anh cần điều gì đó hơn thế nữa”.
Bạn nên hiểu là: “Anh không biết chắc “cái gì đó” là cái gì, nhưng anh đang thấy nhàm chán”.
16. “Anh chưa quên được người yêu cũ”.
Đây là lý do chân thật nhất đấy!
17. “Ước gì 5 năm nữa mình mới gặp nhau”.
Bạn nên hiểu là: “Lúc này đây anh chưa thực trưởng thành. 5 năm nữa anh sẽ chín chắn hơn và có thể là một người chồng/bạn trai tốt”.
18. “Mình ở hai vị trí hoàn toàn khác nhau trong cuộc sống”.
Bạn nên hiểu là: “Vị trí của anh là “anh muốn ra ngoài uống rượu, tiệc tùng, ngủ lang…” còn vị trí của em là “hãy cùng kết hôn và ổn định cuộc sống”. Hai “vị trí” này không thể gặp nhau được.
19. “Anh rất tôn trọng em…”.
Bạn nên hiểu là: “Đừng nói với bạn bè em rằng anh là một thằng đểu nhé, vì anh còn muốn hẹn hò với vài người trong số họ”.
20. “Anh nghĩ chúng mình quá gần gũi, tiến triển quá nhanh…”.
Bạn nên hiểu là: “Khi em đặt bàn chải đánh răng của em cạnh bàn chải răng của anh trong phòng tắm, anh thật sự thấy hoảng!”.

Minna No Nihongo I – Bài 3


Bài trước đó

Bài 1

Bài 2

I. Từ Vựng

Nghe

ここ [koko] ở đây
そこ [soko] ở đó
あそこ[asoko] ở kia
どこ [doko] (nghi vấn từ) ở đâu
こちら [kochira] ( kính ngữ) ở đây
そちら [sochira] (//) ở đó
あちら [achira] (//) ở kia
どちら [dochira] (//)(nghi vấn từ) ở đâu, ở hướng nào
きょしつ [kyoshitsu] phòng học
しょくど [shokudo] nhà ăn
じむしょ [jimusho] văn phòng
かいぎしつ [kaigishitsu] phòng họp
うけつけ [uketsuke] quầy tiếp tân
ロビー [ROBI-] đại sảnh (LOBBY)
へや [heya] căn phòng
トイレ(おてあらい)[TOIRE (ote arai)] Toilet
かいだん [kaidan] cầu thang
エレベーター [EREBE-TA-] thang máy
エスカレーター [ESUKARE-TA-] thang cuốn
(お)くに [(o) kuni] quốc gia ( nước)
かいしゃ [kaisha] công ty
うち [uchi] nhà
でんわ [denwa] điện thoại
くつ [kutsu] đôi giầy
ネクタイ [ NEKUTAI] Cravat ( neck tie)
ワイン [WAIN] rượu tây (wine)
たばこ [tabako] thuốc lá
うりば [uriba] cửa hàng
ちか [chika] tầng hầm
いっかい [ikkai] tầng 1
なんかい [nankai] (nghi vấn từ) tầng mấy
えん [~en] ~ yên ( tiền tệ Nhật bản)
いくら [ikura] (nghi vấn từ) Bao nhiu ( hỏi giá cả)
ひゃく[hyaku] Trăm
せん [sen] ngàn
まん [man] vạn ( 10 ngàn)
すみません [sumimasen] xin lỗi
(を)みせてください。[(~o) misete kudasai] xin cho xem
~ じゃ(~を)ください。[jya (~o) kudasai] vậy thì, xin cho tôi (tôi lấy) cái
~ しんおおさか [shin oosaka] tên địa danh ở Nhật
イタリア [ITARIA] Ý
スイス [SUISU] Thuỵ Sỹ

II. Ngữ pháp – Mẫu câu

1. ここ [koko] そこ は_____ です。 [soko wa _____ desu] あそこ [asoko]

– Ý nghĩa: Đây là/đó là/kia là _____
– Cách dùng dùng để giới thiệu, chỉ cho ai đó một nơi nào đó
– VD: Koko wa uketsuke desu. (đây là bàn tiếp tân)

2. ここ [koko] _____ は そこ です。 [_____ wa soko desu] あそこ [asoko]

– Ý nghĩa: _____ là ở đây/đó/kia.
Cách dùng: dùng để chỉ rõ địa điểm nào đó ở đâu hoặc một người nào đó ở đâu. Thường đựơc dùng để chỉ cho ai đó một nơi nào hoặc người nào đó.
– VD:
a. Satou san wa soko desu. [ anh Satou ở đó]
b. Shokudou wa ashoko desu. [ Nhà ăn ở kia]

3. ______は どこ ですか。[_____wa doko desuka.]

– Ý nghĩa: _____ ở đâu?
– Cách dùng: dùng để hỏi nơi chốn hoặc địa điểm của một người nào đó đang ở đâu. Chúng ta có thể kết hợp câu hỏi này cho cả hai cấu trúc 1. và 2. ở trên.
– VD:
a. koko wa doko desuka? (đây là đâu?)
b. ROBI- wa doko desuka? (đại sảnh ở đâu?)
c. SANTOSU san wa doko desuka? ( Anh SANTOSE ở đâu?) + SANTOSUSAN wa kaigi jitsu desu. ( Anh SANTOSE ở phòng họp)

4.こちら [kochira] _____ は そちら です。 [_____wa sochira desu.] あちら [achira]

– Ý nghĩa: _____ là đây/đó/kia ( nếu dùng chỉ người thì có nghĩa là Vị này/đó/kia)
– Cách dùng: Tương tự với cách hỏi địa điểm, nơi chốn, người ở trên. Nhưng nó được dùng để thể hịên sự lịch thiệp, cung kính đối với người đang nghe. Nghĩa gốc của các từ này lần lượt là (Hướng này/đó/kia)
– VD: Kaigi jitsu wa achira desu. (phòng họp ở đằng kia ạ) Kochira wa Take Yama sama desu. (đây là ngài Take Yama)

5. _____は どちら ですか。[_____ wa dochira desuka?]

– Ý nghĩa: _____ ở đâu? ( nếu dung cho người thì là : ____ là vị nào?)
– Cách dùng: đây là câu hỏi lịch sự cung kính của cách hỏi thông thường.
– VD:
ROBI- wa dochira desuka? ( Đại sảnh ở hướng nào ạ?)
Take Yama sama wa dochira desuka?(ngài Take Yama là vị nào ạ?)

6. ______は どこの ですか。[_____ wa doko no desuka?] ______ は ~の です。 [_____wa ~ no desu]

– Ý nghĩa: _____ của nước nào vậy?
______ là của nước ~
– Cách dùng: Đây là cấu trúc dùng để hỏi xuất xứ của một món đồ. Và trong câu trả lờI, ta có thể thay đổi chủ ngữ ( là món đồ thành các từ như [kore] [sore] và [are] đưa ra đứng trước trợ từ WA và đổi từ đã thay thế vào vị trí sau trợ từ NO thì sẽ hay hơn, hoặc ta có thể bỏ hẳn luôn cái từ đã đổi để cho câu ngắn gọn.
– VD: cái đồng hồ này là của nước nào?) đó là đồng hồ Thuỵ Sĩ)

7. _____ は なんがい ですか。 [ _____ wa nangai desuka?] _____ は ~がい です。 [______wa ~gai desu]

– Ý nghĩa: ______ ở tầng mấy?
______ở tầng ~.
– Cách dùng: Đây là câu hỏi địa đỉêm của một nơi nào đó ở tầng thứ mấy.
– VD: nhà hàng ở tầng mấy? nhà hàng ở tầng năm

8. _____は いくら ですか。( _____ wa ikura desuka?) ______ は ~ です。 (_____wa ~ desu)

– Ý nghĩa: ______ giá bao nhiêu? _____ giá ~
– Cách dùng: Dùng để hỏi giá một món đồ.
– VD:
kono enpitsu wa ikura desuka? ( cái bút chì này giá bao nhiêu?)
sore wa hyaku go jyuu en desu. ( cái đó giá 150 yên)
Phần Phụ:
なんがい。 [ nangai] Tầng mấy
いっかい [ ikkai] tầng 1
にかい [nikai] tầng 2
さんがい [sangai] tầng 3
よんかい [yonkai] tầng 4
ごかい [ gokai] tầng 5
ろっかい [rokkai] tầng 6
ななかい [nana kai] tầng 7
はっかい [hakkai] tầng 8
きゅうかい [kyuukai] tầng 9
じゅうかい [jyuukai] tầng 10
Các từ màu khác là các từ có âm đặc biệt. Các tầng sau ta cũng đếm tương tự và các số đặc biệt cũng được áp dụng cho các tầng cao hơn ( ví dụ: tầng 11 : jyuu ikkai, tầng 13: jyuu sangai)

Dấu hiệu tên bạn thân đang ‘cảm nắng’ bạn


Nếu anh chàng bạn thân đột nhiên có những biểu hiện rất lạ lùng khiến bạn không thể hiểu nổi, rất có thể anh ta đang tương tư bạn đấy.

Trên thực tế cũng đã có không ít tình bạn đẹp giữa một người con trai và một người con gái, nhưng điều đó vẫn chưa đủ để mọi người hết hoài nghi: “Có hay không một tình bạn thân giữa hai người khác giới?”. Trong khi một số người cho rằng, đó là một điều hoàn toàn có thể, số khác lại nghĩ sẽ không thể có tình bạn khác giới thực sự bởi nếu một nam, một nữ chơi thân với nhau, hiểu nhau sâu sắc và có thể chia sẻ với nhau mọi buồn vui thì sớm muộn gì họ cũng sẽ yêu nhau. Hoặc cũng có khi tình yêu chỉ xuất phát từ một phía (người nam hoặc người nữ) khiến cho tình bạn dù đẹp đến mấy cũng đến lúc phải rạn nứt.

Và đây cũng chính là lí do khiến cho nhiều bạn gái không dám kết thân với con trai. Nếu tên bạn chí cốt của bạn là một “boy”, hãy cùng kiểm tra xem tình cảm của hắn dành cho bạn đã vượt quá mức tình bạn chưa nhé.

Sau đây là những dấu hiệu chứng tỏ hắn đang thầm thương trộm nhớ bạn mà chưa dám thổ lộ.

Lúc nào cũng muốn “cặp kè” cùng bạn

Cho dù bạn đi đâu, làm gì (dự tiệc sinh nhật, đi đám cưới, đi dạo, hay đi mua sắm…) hắn đều muốn được làm người đồng hành của bạn, và tìm mọi cách để được đi cùng. Có thể hắn đang muốn chứng minh cho mọi người (nhất là các chàng trai khác) biết rằng, bạn là của hắn và đừng ai dại gì mà đụng tới bạn.

Chủ động hẹn bạn đi chơi

Không phải tất cả các chàng trai có ý định mời bạn đi chơi đều phải thích bạn. Tuy nhiên, nếu là anh chàng bạn thân thì bạn cũng nên để tâm một chút. Nếu mật độ hắn rủ bạn đi chơi quá thường xuyên (nhất là lại đến những chốn lãng mạn dành cho các cặp đôi) thì đó cũng là một dấu hiệu chứng tỏ hắn đang muốn có một bước tiến mới trong mối quan hệ của hai người.

t739025

Tình bạn khác giới rất dễ chuyển biến thành tình yêu, có thể là một phía hoặc từ hai phía

Hay trêu chọc bạn

Khi bắt đầu thích một cô gái, hầu hết nam giới đều có những hành động trái ngược với những gì họ nghĩ trong đầu. Thay vì lúc nào cũng dịu dàng, quan tâm, chăm sóc, họ thích trêu chọc cô gái đó, thậm chí khiến cho đối phương phải cảm thấy bực bội mới thôi. Nếu tên bạn thân của bạn có những biểu hiện như trên thì bạn nên cảnh giác bởi vì hắn đang bắt đầu chú ý đến bạn rồi đấy.

Nhìn bạn chằm chằm

Giờ thì hãy để ý một chút đến ánh mắt của hắn mỗi khi nhìn bạn nhé. Đã bao giờ bạn bắt quả tang tên bạn thân đang nhìn mình một cách đắm đuối, rồi khi bị bạn phát hiện, hắn lại vội vã quay mặt đi trong ngượng ngùng chưa? Nếu thường xuyên nhìn bạn theo cách này thì chắc chắn bạn đang nằm trong tầm ngắm của hắn rồi.

Thích được ngồi gần thật gần với bạn

Đành rằng đã là bạn thân thì ngồi cạnh nhau cũng là chuyện bình thường, nhưng đã bao giờ bạn thấy hắn cố tình ngồi sát bạn đến mức khoảng cách giữa hai người chỉ còn là con số không chưa? Chắc chắn hắn sẽ không bao giờ làm như vậy với một tên bạn thân cùng giới đâu, chính vì thế bạn cũng nên cẩn thận mà đề phòng.

Thường xuyên nhờ vả bạn

Những chuyện hắn nhờ bạn giúp đỡ sẽ chỉ là những chuyện vặt vãnh, nhỏ nhặt, không tốn công sức cũng như tiền của một chút nào. Thông thường thì hắn sẽ tìm đến bạn để xin những lời khuyên bổ ích, thậm chí là cả những lời khuyên tình cảm sướt mướt (trong khi hắn vẫn còn chưa kịp có bạn gái). Nếu bạn không muốn bị “sập bẫy” thì hãy tỉnh táo một chút để phán đoán nhé.

Nhớ tất cả mọi thứ về bạn

Nếu thực sự hắn là một chàng trai biết lắng nghe đến như vậy mỗi khi ở bên cạnh bạn, nhớ tất tần tật mọi thứ bạn nói (đến mức không quên một từ) thì không còn nghi ngờ gì nữa, tình cảm hắn dành cho bạn đã vượt mức tình bạn.

Luôn cố gắng làm bạn cười

Khi đã đem lòng quý mến một cô gái, cánh mày râu luôn ao ước có thể làm cho người con gái ấy cười thật nhiều. Đó là hạnh phúc, đồng thời cũng là niềm tự hào của họ. Luôn cố gắng trêu chọc, hay kể những câu chuyện hài hước dí dỏm chỉ với mục đích làm bạn vui cũng là một trong những biểu hiện chứng tỏ tên bạn thân đang muốn chuyển từ tình bạn sang tình yêu.

Java’s UTF-8 and Unicode writing is broken – Use this fix


Many of you might not believe this but try creating a file in UTF-8 encoding using a java program like this one (found on the java tutorial site)

//example from Sun – Incorrect output
static void writeOutput(String str) {

try {
FileOutputStream fos = new FileOutputStream(“test.txt”);
Writer out = new OutputStreamWriter(fos, “UTF8”);
out.write(str);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}

 

This will create a file alright, but that file will not be a true UTF-8 file. Infact, this is a known and documented bug in the JDK that SUN will never fix!
There are other problems with the java.io package when it comes to unicode, for example, the OutputStreamWriter will not write an ASCII stream correctly leaving a ‘?’ at the beginning of the output stream if input stream was Unicode.
After scouring the internet for information on how to get around this, I decided to write a general purpose Unicode converter that would convert FROM and TO any of the following formats:
UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE, ASCII
Usage:
byte[] outbytes = UnicodeUtils.convert(byte[] inbytes, String desiredoutputEncoding);
(The convertor will auto-sense the encoding of the input bytes)
The famous Shanghai Example:

//Example of usage:
String shanghai = “\u4E0A\u6D77”;
byte[] out = UnicodeUtil.convert(shanghai.getBytes(“UTF-16”), “UTF-8”); //Shanghai in Chinese
FileOutputStream fos = new FileOutputStream(“/tmp/out.htm);
fos.write(out);
fos.close();

 

The following is the code for UnicodeUtils.java

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PushbackInputStream;
import java.io.UnsupportedEncodingException;
import java.io.Writer;

public class UnicodeUtil {

public static byte[] convert(byte[] bytes, String encout) throws Exception {
// Workaround for bug that will not be fixed by SUN
// http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4508058
UnicodeInputStream uis = new UnicodeInputStream(new ByteArrayInputStream(bytes), “ASCII”);
boolean unicodeOutputReqd = (getBOM(encout) != null) ? true : false;
String enc = uis.getEncoding();
String BOM = getBOM(enc); // get the BOM of the inputstream

if (BOM == null) {
// inputstream looks like ascii…
// create a BOM based on the outputstream
BOM = getBOM(encout);
}
uis.close();

ByteArrayOutputStream out = new ByteArrayOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(bytes, uis.getBOMOffset(), bytes.length), enc));
Writer w = new BufferedWriter(new OutputStreamWriter(out, encout));

// dont write a BOM for ascii(out) as the OutputStreamWriter
// will not process it correctly.
if (BOM != null && unicodeOutputReqd) {
w.write(BOM);
}

char[] buffer = new char[4096];
int len;
while ((len = br.read(buffer)) != -1) {
w.write(buffer, 0, len);
}

br.close(); // Close the input.
w.close(); // Flush and close output.
return out.toByteArray();
}

public static String getBOM(String enc) throws UnsupportedEncodingException {
if (“UTF-8”.equals(enc)) {
byte[] bom = new byte[3];
bom[0] = (byte) 0xEF;
bom[1] = (byte) 0xBB;
bom[2] = (byte) 0xBF;
return new String(bom, enc);
} else if (“UTF-16BE”.equals(enc)) {
byte[] bom = new byte[2];
bom[0] = (byte) 0xFE;
bom[1] = (byte) 0xFF;
return new String(bom, enc);
} else if (“UTF-16LE”.equals(enc)) {
byte[] bom = new byte[2];
bom[0] = (byte) 0xFF;
bom[1] = (byte) 0xFE;
return new String(bom, enc);
} else if (“UTF-32BE”.equals(enc)) {
byte[] bom = new byte[4];
bom[0] = (byte) 0x00;
bom[1] = (byte) 0x00;
bom[2] = (byte) 0xFE;
bom[3] = (byte) 0xFF;
return new String(bom, enc);
} else if (“UTF-32LE”.equals(enc)) {
byte[] bom = new byte[4];
bom[0] = (byte) 0x00;
bom[1] = (byte) 0x00;
bom[2] = (byte) 0xFF;
bom[3] = (byte) 0xFE;
return new String(bom, enc);
} else {
return null;
}

}

public static class UnicodeInputStream extends InputStream {
private PushbackInputStream internalIn;

private boolean isInited = false;

private int BOMOffset = -1;

private String defaultEnc;

private String encoding;

public static final int BOM_SIZE = 4;

public UnicodeInputStream(InputStream in, String defaultEnc) {
internalIn = new PushbackInputStream(in, BOM_SIZE);
this.defaultEnc = defaultEnc;
}

public String getDefaultEncoding() {
return defaultEnc;
}

public String getEncoding() {
if (!isInited) {
try {
init();
} catch (IOException ex) {
IllegalStateException ise = new IllegalStateException(“Init method failed.”);
ise.initCause(ise);
throw ise;
}
}
return encoding;
}

/**
* Read-ahead four bytes and check for BOM marks. Extra bytes are unread
* back to the stream, only BOM bytes are skipped.
*/
protected void init() throws IOException {
if (isInited)
return;

byte bom[] = new byte[BOM_SIZE];
int n, unread;
n = internalIn.read(bom, 0, bom.length);

if ((bom[0] == (byte) 0x00) && (bom[1] == (byte) 0x00) && (bom[2] == (byte) 0xFE) && (bom[3] == (byte) 0xFF)) {
encoding = “UTF-32BE”;
unread = n – 4;
} else if ((bom[0] == (byte) 0xFF) && (bom[1] == (byte) 0xFE) && (bom[2] == (byte) 0x00) && (bom[3] == (byte) 0x00)) {
encoding = “UTF-32LE”;
unread = n – 4;
} else if ((bom[0] == (byte) 0xEF) && (bom[1] == (byte) 0xBB) && (bom[2] == (byte) 0xBF)) {
encoding = “UTF-8”;
unread = n – 3;
} else if ((bom[0] == (byte) 0xFE) && (bom[1] == (byte) 0xFF)) {
encoding = “UTF-16BE”;
unread = n – 2;
} else if ((bom[0] == (byte) 0xFF) && (bom[1] == (byte) 0xFE)) {
encoding = “UTF-16LE”;
unread = n – 2;
} else {
// Unicode BOM mark not found, unread all bytes
encoding = defaultEnc;
unread = n;
}
BOMOffset = BOM_SIZE – unread;
if (unread > 0)
internalIn.unread(bom, (n – unread), unread);

isInited = true;
}

public void close() throws IOException {
// init();
isInited = true;
internalIn.close();
}

public int read() throws IOException {
// init();
isInited = true;
return internalIn.read();
}

public int getBOMOffset() {
return BOMOffset;
}
}

}

 

Source : http://tripoverit.blogspot.com/2007/04/javas-utf-8-and-unicode-writing-is.html

Minna No Nihongo I – Bài 2


Bài trước đó : Bài 1

I. Từ Vựng

Nghe

これ : [kore] đây
それ : [sore] đó
あれ : [are] kia
この : [kono] ~này
その : [sono] ~đó
あの : [ano] ~kia
ほん : [hon]Sách
じしょ : [jisho] Từ điển
ざっし : [zasshi] tạp chí
しんぶん : [shimbun] báo
ノート: [NOTO] tập
てちょう : [techou] sổ tay
めいし : [meishi] danh thiếp
カード : [KA-DO] card
テレホンカード : [TELEHONKA-DO] card điện thoại
えんびつ : [embitsu]viết chì
ポールペン : [BO-RUPEN] Viết bi
シャープペンシル : [SHA-PUPENSHIRU] viết chì bấm
かぎ : [kagi] chì khoá
とけい : [tokei] đồng hồ
かさ: [kasa]Cái dù
かばん : [kaban] cái cặp
[カセット]テープ : [KASETTO TE-PU] băng ( casset)
テープレコーダー : [TE-PUREKO-DA-]máy casset
テレビ : [TEREBI]cái TV
ラジオ : [RAZIO] cái radio
カメラ : [KAMERA] cái máy chụp hình
コンピューター : [KOMPYU-TA-] máy vi tính
じどうしゃ: [jidousha] xe hơi
つくえ : [tsukue] cái bàn
いす : [isu] cái ghế
チョコレート : [CHOKORE-TO] kẹo sôcôla
コーヒー : [KO-HI-] cà phê
えいご : [eigo] tiếng Anh
にほんご : [nihongo] tiếng Nhật
~ご: [~go] tiếng ~
なん : [nan] cái gì
そう : [dou] thế nào
ちがいます : [chigaimasu] không phảI, sai rồi
そですか。: [sodesuka] thế à?
あのう : [anou] à…..ờ ( ngập ngừng khi đề nghị hoặc suy nghĩ 1 vấn đề)
ほんのきもちです。[honnokimochidesu] đây là chút lòng thành
どうぞ : [douzo] xin mời
どうも : [doumo] cám ơn
[どうも]ありがとう[ございます。] : [doumo arigatou gozaimasu] Xin chân thành cảm ơn
これからおせわになります。: [korekara osewa ninarimasu] Từ nay mong được giúp đỡ
こちらこそよろしく。[kochirakoso yoroshiku] chính tôi mới là người mong được giúp đỡ.

II. Ngữ Pháp – Mẫu câu:

1._____は なんの~ ですか。

– Ý nghĩa: _____ là cái gì?

– Cách dùng: Đây là mẫu câu dùng để hỏi về thể loại hay thuộc tính của một sự vật, hiện tượng. Ta cũng có thể dùng để hỏi với ý nghĩa là sở hữu khi thay đổi từ để hỏi [nan] bằng từ để hỏi [dare] mà sau này chúng ta sẽ học tới! – Ví dụ: (đây là sách gì?) + (đây là sách tiếng Nhật)

2._____は なんようび ですか。

– Ý nghĩa: _____ là thứ mấy?
– Cách dùng: Dùng để hỏi thứ, có thể là ngày hôm nay hoặc là một sự kiện sự việc gì đó.
– Ví dụ:
a. Hôm nay là thứ mấy? +Hôm nay là thứ ba
b. NOEL là thứ mấy? + NOEL ngày thứ Tư.

3._____は なんにち ですか。

– Ý nghĩa: _____ là ngày mấy?
– Cách dùng: Dùng để hỏi ngày và có thể là ngày hôm nay hoặc là ngày của 1 sự kiện gì đó.
– Ví dụ: Sinh nhật ngày mấy? + Tanjoubi wa 17(jyu nana) nichi desu. Sinh nhật ngày 17.

4.これ /それ/あれ は なん ですか。

– Ý nghĩa: Cái này/cái đó/ cái kia là cái gì?
– Cách dùng:
a. Với [kore] thì dùng để hỏi vật ở gần mình, khi trả lời phải dùng [sore] vì khi đó vật ở xa người trả lời
b. Với [sore] dùng để hỏi vật ở gần người nói chuyện với mình, khi trả lời phải dùng [sore]
c. Với [are] dùng để hỏi vật không ở gần ai cả nên trả lời vẫn là [are]
– Ví dụ: Đây là sách gì? Đó là sách Kanji

5.  この~  その~ は なんの~ ですか。 あの~

– Ý nghĩa: ~này/~đó/~kia là ~ gì?
– Cách dùng tương tự mẫu câu số 4 nhưng có í nhấn mạnh hơn!
– Ví dụ: cuốn tạp chí đó là tạp chí gì? cuốn tạp chí này là tạp chí về Vi tính.

Phần phụ lục:

なんようび [nanyobi] thứ mấy
げつようび [getsuyoubi] thứ Hai
かようび [kayoubi] thứ Ba
すいようび [suiyoubi] thứ Tư
もくようび [mokuyoubi] thứ Năm
きんようび [kinyoubi] thứ Sáu
どようび [doyoubi] thứ Bảy
にちようび [nichiyoubi] Chủ Nhật
なんにち [nannichi] ngày mấy
Ở Nhật trong 10 ngày đầu người ta có cách đọc khác đi so với các ngày còn lạI, và chúng ta có thể dùng cho cả hai trường hợp là “ngày ~” hoặc “~ngày”
ついたち [tsuitachi] ngày 1 ( hoặc 1 ngày)
ふつか [futsuka] ngày 2 ( hoặc hai ngày)
みっか [mikka] ngày 3 (//)
よっか [yokka] ngày 4 (//)
いつか [itsuka] ngày 5 (//)
むいか [muika] ngày 6 (//)
なのか [nanoka] ngày 7 (//)
ようか [youka] ngày 8 (//)
ここのか [kokonoka] ngày 9 (//)
とおか [to-ka] ngày 10 (//)
Các ngày còn lại ta đếm bằng cách ráp cách đếm số với chữ “ ” にち [nichi] là được (vd: jyuuichinichi=ngày 11….) nhưng có 1 số trường hợp đặc biệt sau: và tương tự cho các số còn lại ( vd: nijyuu yokka= ngày 24) じゅうよっか [jyuu yokka] Ngày 14 じゅ うくにち [jyuu kunichi] ngày 19 (điểm khác biệt so với đếm số thông thường của số này là số chín không có trường âm, “ku” thay vì “kuu” はつか [hatsuka] ngày 20 ß cái nì chỉ có 1 lần thôi!!! Không lặp lại nha!!!

Kara Dictionary – Từ điển Nhật việt


Từ điển Nhật việt Kara dictionary là một phần mềm từ điển giúp tra từ cách dùng từ, ví dụ, là một phần mềm không thể thiếu cho ai học tiếng nhật.

Giao diện chính của chương trình

image

Cách sử dụng :

chạy file Kara.exe sau đó nhập từ cần tra, khi click vào từ cần tra nội dung sẽ hiển thị sang bên trái.

Download :

Kara dictionary tại đây

Sau khi download về tiến hành dùng 7-zip (hoặc winrar) để xả nén, nếu máy chưa cài 7-zip thì có thể download tại đây : http://www.7-zip.org/

Sau khi cài 7-zip hoặc winrar tiến hành xả nén và sử dụng

 

Chú ý : chương trình không cần cài đặt