質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

1746閲覧

Java ファイル入出力

jamjamenchan

総合スコア8

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

1グッド

0クリップ

投稿2018/05/09 06:53

編集2018/05/10 00:28

ファイル1に定義してある数字をもとに同一数字を10回設定し、ファイル2に書き込む
ファイル1
123
ファイル2
111111111122222222223333333333

といった感じのプログラムを作りたいです。
charAt()で特定の文字を切り出してやろうと思っているのですがどうにもよくわかりません。
プログラムを書いて教えていただけると幸いです。
見て理解を進めたいです。
とりあえずこのような感じで進めています。
続きをどう書いていいのかわかりません。
お願いします。

package j1.lesson.enshu;
import java.io.File;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
public class Enshu11 {
public static void main(String[] args) {
try {
File file = new File("C:\Users\Desktop\file1.txt");

if (!file.exists()) { System.out.print("ファイルが存在しません"); return; } FileReader fileReader = new FileReader(file); int data; ArrayList<Integer>list=new ArrayList<Integer>(); while ((data = fileReader.read()) != -1) { String X; String S; S=String.valueOf(data); for(int i=0;i<10;i++){ X=X+S; } List.add(X);
退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2018/05/09 06:59

完全でなくてもいいですから、とりあえずコードを書きましょう。『一から書いてほしい』という質問は、本サイトでは歓迎されません。
LouiS0616

2018/05/09 07:09

ファイル入出力の方法は調べたのですか?とりあえずググったものを真似すれば『file1の内容をfile2にそのまま書き出すプログラム』は書けると思いますが。
guest

回答3

0

Javaなど不要。そう、シェル芸ならね!

bash

1$ cat file1.txt 2123 3$ cat file1.txt|grep -o .|xargs -n1 -I@ sh -c 'yes @|head -10'|xargs|tr -d ' ' > file2.txt 4$ cat file2.txt 5111111111122222222223333333333

投稿2018/05/09 13:14

編集2018/05/09 14:12
hichon

総合スコア5737

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikapy

2018/05/09 14:04

私のcygwin環境で実行したら以下のようになりました。 $ uname -r 2.10.0(0.325/5/3) $ cat file1.txt 1 2 3 $ cat file1.txt|xargs -n1 -I@ sh -c 'yes @|head -10'|xargs > file2.txt $ cat file2.txt 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
hichon

2018/05/09 14:13

質問を見直したら、全角数字で間に空白は無かったですね。修正しました。
ikapy

2018/05/09 14:31

はい、私も「111111111122222222223333333333」と同じの結果になりました。 xargsでここまで使い込んだ事はなかったので勉強になりました。
guest

0

ベストアンサー

Java

1final String srcPath = "C:\Users\Desktop\file1.txt"; 2final String destPath = "C:\Users\Desktop\file2.txt"; 3 4Path path = Paths.get(srcPath); 5if (!path.toFile().exists()) { 6 System.err.println("ファイルが見つかりません。"); 7 System.exit(1); 8} 9 10String result = new String(Files.readAllBytes(path)).codePoints() 11 .mapToObj(i -> new String(new char[10]).replace('\0', (char) i)) 12 .collect(Collectors.joining()); 13 14Files.write(Paths.get(destPath), result.getBytes());

投稿2018/05/09 08:07

root_jp

総合スコア4666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jamjamenchan

2018/05/10 01:11

こんなやり方もあるんですね! ありがとうございます。
guest

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問