JAVA関連のことを調べてみた2023年02月04日

JAVA関連のことを調べてみた2023年02月04日

Scanner class

usedelimiterでcsvなどの区切り文字を指定することができる
以下の例は文字列を直接指定している
通常はFileInputStreamを使用してファイル読み込みとする

“`java
public class Outer {
public static void main(String[] args) {
Scanner sc = new Scanner(“A B C”);
sc.useDelimiter(” “);
try(sc) {
while(sc.hasNext()) {
System.out.println(sc.next());
}
}
}

“`
“`
A
B
C
“`

元記事を表示

Spring + Thymeleaf + My Batisで行うCRUD操作 ~Create編~

・はじめに

 この記事ではCRUD操作のデータを登録するCreate操作についてのやり方について書いていきます。SQLとのやり取りを簡単にするためにMy Batisを使用します。また、データクラスの記述を省略するためにLombokを使用しています。

 今回は読んだ本を登録するという機能のページを作っていきます。

~用意するクラス~

 ・Controllerクラス

   VIEWとModelを扱うServiceクラスとやり取りして必要な情報を取り出す司令塔的役割のクラス。

 ・データクラス
   使いたいデータのクラス。ログイン処理を行いたいのならログインに必要なデータ、例えばIDやパスワードを設定する。 LomBokの@DataをつけることによってSetterとGetterの文を省略します。

 ・Serviceクラス
   Modelとやり取りするクラス。SQLとやり取りしてデータの登録、取り出し、更新、削除を行わせるクラス。

 ・Mapperクラ

【Java】オペランド とは ――――単語の意味

**Java**などの多くのプログラミング言語では、
“`
a = b + 3
“`
のような式の中で変数の「a」「b」や、値の「3」と
「=」「+」などの計算記号の**2種類**に分けることが出来ます。

ここで
*「a」「b」「3」の側を**オペランド(operand)***
*「+」「=」の方を**演算子(operator)***
といいます。

BitbucketPipelinesでCI/CDに挑戦する その3:S3にアップロードしたレポートをCloudFrontで公開する

## 概要
既にある程度の開発が進んでいるBitbucket上のプロジェクトにPipelinesを使って継続的あれこれする機能を追加しようという、解説というよりも私の挑戦の記録です。

[前回(その2)](https://qiita.com/talesleaves/items/adfd8b673ca6a17ae44c)はテストで生成したレポートをPipelinesでS3へアップロードしました。
今回はでアップロードしたHTMLファイルをブラウザで閲覧できるようにCloudFrontを設定する、URLをBitbucketのビルドステータスに追加するなど、やり残した作業を行っていきます。
また、**下記環境に当てはまらない方でも、S3で静的ホスティングでHTMLを公開している方は是非ご一読ください。**

### 記事内で使用している環境
– Java17
– Gradle7.6
– JUnit,JaCoCoでテストのレポートを作成
– BitbucketのリポジトリでPipelinesを有効化している
– AWSの管理者アカウントを持っている
– S3にHTMLがアップロードされている

Console classを使ってコンソール入力

netbeansからこのプログラムは実行できない
command promptで実行している
“`java
public class Outer {
public static void main(String[] args) {
Console c = System.console();
String s = c.readLine();
System.out.println(“you typed ” + s);
char[] cs = c.readPassword();
System.out.println(“you typed ” + String.valueOf(cs));
}
}
“`
“`
ooo
you typed ooo

you typed ppp
“`

consoleから文字を入力

InputStreamReaderにSystem.inを指定してnewすると、console inputとなる

“`java
public class Outer {
public static void main(String[] args) {
InputStreamReader is = new InputStreamReader(System.in);
BufferedReader bs = new BufferedReader(is);
try{
try(bs) {
String s = bs.readLine();
System.out.println(s);
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
“`
“`
ppp //me typed

FileInputStream class

FileInputStreamを使用して画像の読み込み
FileOutputSttreamを使用して画像の書き込み
“`java
public class Outer {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream(“C:\\dirtest\\cook.jpg”);
BufferedInputStream ibs = new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream(“C:\\dirtest\\cookcpy.jpg”);
BufferedOutputStream bos = new BufferedOutputStream(fos);
try(ibs;bos) {
while(tr

FileWriter class

FileWriterにてfile writeができる。
BufferedWriterを使うことによりまとまった単位での書き込み
flushはメモリとファイルの同期をとる
FileWriterのsecond argumentはappendするか否か

“`java
public class Outer {
public static void main(String[] args) {
try {
FileWriter fw = new FileWriter(“C:\\dirtest\\testwritefile.txt”,true);
BufferedWriter bw = new BufferedWriter(fw);
try(bw) {
bw.write(“hello”);
bw.newLine();
bw.write(“my fiend”);
bw.newL

BufferedReader class

BufferedReaderは、lineごとにreadすることができる
lines() returns Stream
あくまでもファイルへのアクセスはFileReaderを通している
ReaderからReaderの機能追加で組み合わせができる、Decorator patternという。

“`java
public class Outer {
public static void main(String[] args) {
try {
FileReader fr = new FileReader(“C:\\dirtest\\testmakefile.txt”);
BufferedReader r = new BufferedReader(fr);
try (r){
r.lines().forEach(System.out::println);
}
} catch (IOException ex ) {

Spring Bootのresourcesファイルを読み込む

# 挨拶
どうも、はじめまして。
お久しぶりの方はお久しぶりです。ミツクマです?

今回は、Spring Bootのresourcesにあるファイルを取得する方法を書いていきます。

# はじまり
resourcesファイルに動画ファイルを設置して、Controllerから取得するといった流れで
実装しようとしたところ、resourcesのファイルが取得できませんでした。

“`java
Path path = Paths.get(“resourcesのパス”);
“`
で取得しようとしたのですが、NoSuchFileExceptionと表示されうまくいきませんでした。

# 原因の追究
パス指定がダメなのかと思い、色々と試したのですがダメでした。
試した内容としては、

– “classpath:相対パス”
– “filepath:絶対パス”
– “相対パス”のみ

と試したのですがダメでした。

# 私の場合の解決法
これに関しては、あくまで一例なのですが **ClassPathResource** を使用して解決しました。

“`java
Resource resource

気軽にJavaのコード検証したいだけ

# はじめに
「気軽にJavaの勉強がしたいよ~」と思ったわけです。

# 前提環境
・M1 Mac mini
・docker
・kubernetes

# コンテナ作成
Dockerfileを作成しました。

“`shell-session:M1 Mac mini (%はMacOSのシェルプロンプト)
% vi Dockerfile
“`

“`Dockerfile:Dockerfile
FROM ubuntu:jammy
ARG DEBIAN_FRONTEND=noninteractive

RUN apt update &&\
apt upgrade -y
RUN apt install -y \
python3 \
python3-pip \
openjdk-11-jdk \
git \
&& ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
&& apt clean \
&& rm -rf /var/lib/apt/lists/*

ENV TZ=Asia/Toky

【Java】PDFにテキスト透かしを挿入する方法

PDFのテキスト透かしは、各PDFページの背景として表示されるデジタルテキストマークです。スタンプとは異なり、テキストの透かしはページに統合されており、直接削除することはできません。彼らはしばしば文書情報、会社情報、著者情報および文書の他の多くの属性を表示するために使用されます。さらに、テキスト透かしはまた、使い過ぎからPDF文書を保護することができます。テキストの透かしは、多くの場合、Web上で公開されている元のコンテンツを使用してPDF文書で使用されています。この記事では、無料の[Free Spire.PDF for Java](https://jp.e-iceblue.com/introduce/free-spire-pdf-for-java.html)を使用して**PDF文書にテキスト透かしを挿入する方法**を示しています。
– **[PDF文書に単一のテキスト透かしを挿入する](#pdf文書に単一のテキスト透かしを挿入する)**
– **[PDF文書にタイル型テキスト透かしを挿入する](#pdf文書にタイル型テキスト透かしを挿入する)**

## 【依存関係の追加】
この方法

Spring Boot 開発環境構築 Mac

# STSのインストール
以下参考に実施。
https://qiita.com/hayashi0207/items/48e3293bd0fe623bdfcd

# 新規プロジェクトの作成
https://qiita.com/t-yama-3/items/969825d5c1bc4a16866d

# mysqlのインストール
https://www.javadrive.jp/mysql/connect/index3.html

# アプリケーションの起動まで
https://qiita.com/t-yama-3/items/969825d5c1bc4a16866d

Flutter環境構築してたらJavaのClassNotFoundエラーで苦しんだ話

この記事ではJavaのClassNotFoundエラーの解決方法を伝えます。

Terminal で“`Flutter doctor“`と入力すると
“`
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.7.1, on macOS 13.2 22D49 darwin-x64, locale ja-JP)
[!] Android toolchain – develop for Android devices (Android SDK version 33.0.1)
✗ Android license status unknown.
Run `flutter doctor –android-licenses` to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/macos#android-setup for more

【Java】PDFのページを回転させる方法

PDFは、文書の共有や印刷に広く使用されている形式です。大きなPDFファイルには、特にJPG、PNG、スキャンしたPDFなどの形式から変換されたページなど、回転角度が不適切なページが含まれていることがよくあります。この記事では、無料の[Free Spire.PDF for Java](https://jp.e-iceblue.com/introduce/spire-pdf-for-java.html)を使用して**PDFページを回転させる方法**を紹介します。
– **[指定のPDFページを回転させる](#指定のpdfページを回転させる)**
– **[PDF文書内の画像を回転させる](#pdf文書内の画像を回転させる)**
– **[PDF文書内のテキストを回転させる](#pdf文書内のテキストを回転させる)**

## 【依存関係の追加】
この方法は、無料のFree Spire.PDF for Javaが必要ですので、先にjarファイルをインポートしてください。
### 1. Maven
Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加す

CustomVisionからRESTで予測結果を取得

# はじめに

前回の記事の続きになります。

https://qiita.com/MEGAERA/items/5e5f222839af57eaacb0

今回は、前回作成したモデルにRESTで画像データを送信し、予測結果の取得を行う。

# headerとbodyに設定する値を確認

CustomVisionのポータルから、Peformanceタブを選択。
Prediction URLを押下する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118127/645e72cb-e6eb-511d-793e-a74e8d83eda9.png)

※この際、作成したモデルが(compact)となっていると、Prediction URLが非活性となる。
 その場合はprojectSettingからDomainsを変更して、再度モデル作成を行う。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/

SpringBoot備忘録

# はじめに
たまに使用するコマンドとか忘れがちなので記録します。

# SpringBoot起動

“`bash
# maven
mvn spring-boot:run -Dspring-boot.run.profiles=dev,local -Dspring-boot.run.arguments=パラメータ

# gradle
gradle bootRun -Pprofiles=dev –args=’パラメータ’
“`

Tomcatをコマンドラインで操作するのに必要なこと

主にホットリロード目的。
大抵のサイトには

“`
http://localhost:8080/manager/text/relaod?path=
“`

を叩けと書いてあります。ちなみにGETです。
Basic認証がかかっているなら

“`
curl -XGET -u : http://localhost:8080/manager/text/relaod?path=
“`

こんな感じです。
しかし私の場合403になってしまい、なぜ…と思っていたら tomcat-users.xml にユーザーの追加が必要でした。

“`

Java 基礎知識① オブジェクト指向と変数宣言(データ型)について

## Javaとは
サーバーサイド言語の一つで、大規模開発に使用されることが多い言語です。
オブジェクト指向に対応している言語であり、プログラミングの基礎が詰め込まれた言語になります。

## オブジェクト指向とは
簡単にいうとソースコードを部品化して、プログラムを組み立てやすくする考え方です。
Javaでは機能ごとのソースコードをクラスごとに分けて、実装や保守などをしやすくなります。
大規模開発では必須の開発方法です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2613586/f998ec95-7eba-4bcf-6570-477e658cc3c2.png)
この画像では、剣、敵、銃を部品化してクラス別のファイルで管理をしています。
こうすることで、例えば剣の攻撃力を上げる修正が入っても、剣クラスの内容だけ修正すれば良いので管理もしやすくなりますし、実装もしやすくなるのです。

## Javaプログラムの基本構造
Javaプログラムを動かすMainクラスは以下のようになります

Javaのメール送信について (2パターン実装してみた)

実務の中で初めて触れたjavaのメール送信について、簡単に備忘録として書き残しておこうと思います。

メール送信に困っている方の参考にもなれば嬉しいです。

## 利用するメールサーバー等の設定

今回は、springを利用しているので、ymlファイルを利用しています。
また、Gmailのサーバーを利用してGmailからメール送信します。

※ springを利用していない方はpropertyファイルに記載が必要になります。

“`yml:
spring:
mail:
host: smtp.gmail.com
port: 587
username: ユーザー名
password: パスワード
properties:
mail:
smtp:
auth: true
starttls.enable: true
“`

gmailにログインする時のパスワードではないので、注意が必要。


送信依頼をしてきたメールサーバが正規のクライアントかど