檔案存取通常是「循序的」,每在檔案中存取一次,檔案的讀取位置就會相對於目前的位置 ... FileStreamDemo FileDemo.java FileDemo.txt 複製檔案:1723位元組複製完成. ... <看更多>
java讀取txt 在 java-txt資料讀取存入SQL - DustinChu Blog 的推薦與評價
java -txt資料讀取存入SQL. 前言. 最近實在太忙了.沒什麼時間更新blog. 本來打算寫專案過程可以抓時間學習python 主管最近突然跟我說10天要把舊ERP的 ... ... <看更多>
java讀取txt 在 使用BufferedInputStream 讀取檔案 - 他山教程 的推薦與評價
使用 BufferedInputStream 讀取檔案通常比 FileInputStream 快,因為它維護 ... static void main(String[] args) { String source = "hello.txt"; ... ... <看更多>
java讀取txt 在 Java使用FileWriter寫資料進文字檔、 csv檔- YouTube 的推薦與評價
Java 使用FileWriter寫資料進文字檔、 csv檔. ... 與檔案複製- 012 Basic File IO (基礎檔案存取) 影片3 : Java 教學進階 ... java stack讀寫 txt 01. ... <看更多>
java讀取txt 在 Re: [問題] 讀取的資料比對- 看板java - 批踢踢實業坊 的推薦與評價
※ 引述《loadball (~@TimeDriver@~)》之銘言:
: 最近寫一個程式
: 碰上了一些小問題
: 希望前輩們幫解答一下
: 我要讀取一個TXT檔
: 檔內有一些數據
: 例如:
: 925001
: 682533
: 925001
: 123456
: 4組數據
: 我已經能做到讀取開檔的動作
: 但是這4組數字要比對呢?
: 我要做的功能是數列的比對
: 例如:
: 925001或先讀到然後跟682533比對
: 假如不是相同的數列則繼續跟下一個925001比對
: 因為兩個數列重複出現,會跳出一個類似警告視窗之類的
: 我有想過將讀到的東西先存入陣列內再讓她們去比對
: 但並不太了解將讀到的資料寫入陣列內這一步要怎麼寫呢?
: 還有就是還有其它比較好的寫法來比對這些數列嗎?
: 最直接的想法是我上面講的一個一個比
沒錯,確實是一個一個比較...
(我是採用跟「選擇排序」同樣的方法來比較數字...
算是比較直接方式...當然還有其他方法)
首先用loadFile 讀取文字檔,然後將她存成ArrayList<Integer>,
然後將ArrayList轉存成int[],接著用迴圈檢查,將檢查結果傳回boolean值,
最輸出驗證結果。
程式碼大概的過程就這樣...希望對你有所幫助... ^ ^
(其實只要用ArrayList或int[]陣列其中一個就行了...不需要轉換那麼多次...)
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class CheckDoubleNumber {
/** 檢查是否有出現重複的數字 */
public boolean checkIfDouble(int num[]) {
for (int i=0;i<num.length;i++) {
for (int j=i+1;j<(num.length);j++) {
System.out.println(num[i] + "," + num[j]);
if (num[i] == num[j]) {
return true;
}
}
}
return false;
}
/** 讀取檔案 */
public List<Integer> loadFile(String fileName) {
List <Integer> Arrays = new ArrayList <Integer>();
Scanner reader;
try {
reader = new Scanner(new File(fileName));
while (reader.hasNextInt()) {
int n = reader.nextInt();
Arrays.add(n);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return Arrays;
}
/** 將 List 轉換成 int[] */
public int[] ListToArrays(List<Integer> list) {
int num[] = new int[list.size()];
for (int i=0;i<list.size();i++){
num[i] = (Integer)list.get(i);
}
return num;
}
/** 輸出驗證結果 */
public void PrintResult(boolean isNumberDoubles) {
if (isNumberDoubles) {
System.out.println("數字有重複");
}
else {
System.out.println("每組數字皆是唯一");
}
}
public static void main(String[] args) {
CheckDoubleNumber compare = new CheckDoubleNumber();
List<Integer> numList = compare.loadFile("Numbers.txt");
int num[] = compare.ListToArrays(numList);
boolean result = compare.checkIfDouble(num);
compare.PrintResult(result);
}
}
--------------------------------------------------------------------
<Numbers.txt>
12
123
85
152
37
777
37
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.105.89.152
... <看更多>