Skip to content
Snippets Groups Projects
Commit 00d550f9 authored by Vilho Kivihalme's avatar Vilho Kivihalme
Browse files

UTF-8

parent d8cd9b85
Branches master
No related tags found
No related merge requests found
......@@ -4,10 +4,10 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;
public class Sytevirrat {
public class Syötevirrat {
/**
* Sytevirroilla (inputstream) voidaan lukea tiedostoja juuri niin paljon kerrallaan kuin tarvitsee.
* Syötevirroilla (inputstream) voidaan lukea tiedostoja juuri niin paljon kerrallaan kuin tarvitsee.
* @param args
* @throws IOException
*/
......@@ -20,19 +20,19 @@ public class Sy
byte[] puskuri=new byte[100]; //100 tavun puskuri
int luettu=0;
//yritetn lukea puskuriin 100 tavua. Metodi tallentaa tiedot puskuriin ja palauttaa todellisuudessa luetun mrn.
//jatketaan while-silmukkaa, kunnes metodi palauttaa -1 (virta pttyi eik luettavaa en ole)
//yritetään lukea puskuriin 100 tavua. Metodi tallentaa tiedot puskuriin ja palauttaa todellisuudessa luetun määrän.
//jatketaan while-silmukkaa, kunnes metodi palauttaa -1 (virta päättyi eikä luettavaa enää ole)
while((luettu=fis.read(puskuri))!=-1){
System.out.println("Luettiin " + luettu + " tavua.");
//muutetaan puskurin sislt merkkijonoksi, joka sislt vain tavujen numeeriset arvot.
//muutetaan puskurin sisältä merkkijonoksi, joka sisältää vain tavujen numeeriset arvot.
String tavut = Arrays.toString(puskuri);
System.out.println(tavut);
//Tss voisi mys kokeilla tavujen muuttamista merkkijonoksi, esim new String(puskuri); mutta se ei vlttmtt onnistu
//koska yht merkki saatetaan esitt useammalla tavulla merkistkoodauksesta riippuen ja puskuri saattaa katketa keskelt
//merkki.
//sytevirtoja kytetn usein muiden tiedostomuotojen kuin tekstien lukemiseen.
//Tässä voisi myös kokeilla tavujen muuttamista merkkijonoksi, esim new String(puskuri); mutta se ei välttämättä onnistu
//koska yhtä merkkiä saatetaan esittää useammalla tavulla merkistäkoodauksesta riippuen ja puskuri saattaa katketa keskeltä
//merkkiä.
//syötevirtoja käytetään usein muiden tiedostomuotojen kuin tekstien lukemiseen.
}
fis.close(); //suljetaan sytevirta.
fis.close(); //suljetaan syötevirta.
}
}
......@@ -5,18 +5,18 @@ import java.util.Scanner;
public class TiedostoScanner {
/**
* Tiedostoja voi lukea mys scannerilla:
* Tiedostoja voi lukea myös scannerilla:
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException {
String tiedostonimi = args[0]; //otetaan tiedostonimi komentorivilt
File tiedosto = new File(tiedostonimi); //File -olio viittaa thn kyseiseen tiedostoon
String tiedostonimi = args[0]; //otetaan tiedostonimi komentoriviltä
File tiedosto = new File(tiedostonimi); //File -olio viittaa tähän tiedostoon
Scanner s = new Scanner(tiedosto); //Scanner asetetaan lukemaan tiedostoa, eik "System.in" -sytevirtaa.
Scanner s = new Scanner(tiedosto); //Scanner asetetaan lukemaan tiedostoa, eikä "System.in" -syötevirtaa.
while(s.hasNextLine()) { //jatketaan niin kauan kuin scanner ilmoittaa, ett rivej on viel jljell.
while(s.hasNextLine()) { //jatketaan niin kauan kuin scanner ilmoittaa, että rivejä on vielä jäljellä
String rivi = s.nextLine();
System.out.println(rivi);
}
......
......@@ -10,14 +10,14 @@ public class Tiedostonlukija {
public static void main(String[] args) throws IOException {
String tiedostonimi = args[0]; //otetaan tiedostonimi komentorivilt
File tiedosto = new File(tiedostonimi); //File -olio viittaa thn kyseiseen tiedostoon
String tiedostonimi = args[0]; //otetaan tiedostonimi komentoriviltä
File tiedosto = new File(tiedostonimi); //File -olio viittaa tähän kyseiseen tiedostoon
Path polku = tiedosto.toPath(); //polku kertoo tiedoston tarkan sijainnin
List<String> rivit = Files.readAllLines(polku); //Files -luokasta lytyy metodi joka lukee koko tiedoston kerralla List-olioon.
//kannattaa huomata, ett todella isoilla tiedostoilla edellinen ei ky, jos tietokoneesi muisti ei riit.
List<String> rivit = Files.readAllLines(polku); //Files -luokasta löytyy metodi joka lukee koko tiedoston kerralla List-olioon.
//kannattaa huomata, että todella isoilla tiedostoilla edellinen ei käy, jos tietokoneesi muisti ei riitä.
//tulostetaan esimerkkin kaikki tiedostossa olevat rivit
//tulostetaan esimerkkinä kaikki tiedostossa olevat rivit
for(int i = 0;i<rivit.size();i++) {
String rivi=rivit.get(i);
System.out.println(rivi);
......
:nuulettiojrah ninniomlejho atiejho isillydyH
:nuulettiojrah ninniomlejho atiejho äisillydöyH
.allivataas ania no oitaatnemukod tte ,atsiuM .1
lmth.gnirtS/gnal/avaj/ipa/scod/8/esavaj/moc.elcaro.scod//:sptth uvis mt yytyl "gnirtS 8 avaJ" allamaalgoog misE
.ntetyk ignirtS akniuk ,naatorrek alluvis tlesiesyK
,yytyl oteit tsim ,teit no pmekrt atsimaaso aoklu assinniomlejhO
.ntiste tis netim teit no pmekrt nikleiv aj
.allivataas ania no oitaatnemukod ätte ,atsiuM .1
lmth.gnirtS/gnal/avaj/ipa/scod/8/esavaj/moc.elcaro.scod//:sptth uvis ämät yytyöl "gnirtS 8 avaJ" allamaalgoog misE
.näätetyäk äignirtS akniuk ,naatorrek alluvis ätlesiesyK
,yytyöl oteit ätsim ,ääteit no ääpmekrät atsimaaso aoklu assinniomlejhO
.näätiste ätis netim ääteit no ääpmäekrät nikäleiv aj
.llyK !!ssitnet ttyk AAS atoitaatnemukoD .2
.aulettepoaoklu neleikidook ssemin nssim elo ie itniomlejhO
.ällyK !!ässitnet äättyäk AAS atoitaatnemukoD .2
.aulettepoaoklu neleikidook ässemin näässim elo ie itniomlejhO
allulettaja allesigool aimlegno naamesiaktar aippo no aneskutiokraT
.nyt nesinaakem aatioh iov es attoj ,elleenokoteit en naamattiojrik neeklj nes aj
.nöyt nesinaakem aatioh iov es attoj ,elleenokoteit en naamattiojrik neekläj nes aj
.aoklu navattaso aattelo iov aekkiak iette ,atsiaktuminom niin no itniomlejhO
.aitniomlejho aattuepon niknetiuk nenimaaso aoklu nedioisa niknedioj aj tiniituR
nisky dhet sneely estivrat ie aitniomlejhO .3
,aitniomlejho asselletepo aj asseatsarrah netsimhi neinoojliM .aelgoog tyK .aupa ysyK
attum ,aupa nojlap yytyl tsiteN .assnak namlegno namas tuniniap no nikuum ukoj itsamrav
.iimiot es netim trmmy aattiok aj aarous aidook attamioipok allo itlis aattannak
.atsuatsav aaekio ytteit thy nimmevrah no assinniomlejhO .4
nenimattaas neimlejho aj itniomitpO .ntedyyp tim es nmeket aj naamimiot amlejho adaas no tniekrT
uutsinno akoj amlejho nenialles nisne dhet aattannak sneely attum ,ekrt suksoj no iskimmaepon
.ssvthet assutenna ellis
allarrek ythet adaas estivrat ie aamlejho aavimioT .5
aattannak asseattiojrik aamlejho ktip niknisraV .eestivrat niuk niesu niin namlejho aattirous aj tnk tioV
.tavimiot taso tutetiojrik oj tte ,aatsimrav llilv
.nirv no assamlejho kim ,ootrek naav erup ie ELLiV ,aaluppan- timbus nELLiV aaniap klep l
.tiehriv tynhet telo assadhok ssim ,lletp suksoj iov atseetsolut atsamatna namlejho isksiL
.aiskutiomliehriv njtnk naamekul elettepO .6
ttyk atsiuM .aidook assadhok ssim aj allaiv no kim ellunis ootrek jtnK .ekrt nesiovraisne no mT
.aimlegno ajomas itsamrav no alluum nikalloj ,niksst aelgoog
nisky ädhet äsneely estivrat ie aitniomlejhO .3
,aitniomlejho asselletepo aj asseatsarrah netsimhi neinoojliM .aelgoog ätyäK .aupa ysyK
attum ,aupa nojlap yytyöl ätsiteN .assnak namlegno namas tuniniap no nikuum ukoj itsamrav
.iimiot es netim ääträmmy aattiok aj aarous aidook attamioipok allo itlis aattannak
.atsuatsav aaekio äytteit äthy nimmevrah no assinniomlejhO .4
nenimattaas neimlejho aj itniomitpO .näätedyyp ätim es näämeket aj naamimiot amlejho adaas no ätniekräT
uutsinno akoj amlejho nenialles nisne ädhet aattannak äsneely attum ,ääekrät suksoj no iskimmaepon
.ässäväthet assutenna ellis
allarrek äythet adaas estivrat ie aamlejho aavimioT .5
aattannak asseattiojrik aamlejho ääktip niknisraV .eestivrat niuk niesu niin namlejho aattirous aj äätnääk tioV
.tavimiot taso tutetiojrik oj ätte ,aatsimrav älliläv
.nirääv no assamlejho äkim ,ootrek naav erup ie ELLiV ,aaluppan- timbus nELLiV aaniap ääklep älÄ
.ätiehriv tynhet telo assadhok ässim ,älletääp suksoj iov atseetsolut atsamatna namlejho iskäsiL
.aiskutiomliehriv näjätnääk naamekul elettepO .6
äättyäk atsiuM .aidook assadhok ässim aj allaiv no äkim ellunis ootrek äjätnääK .ääekrät nesiovraisne no ämäT
.aimlegno ajomas itsamrav no alluum nikalloj ,nikässät aelgoog
Onni Opiskelija,Ylioppilaskylä 1 A 1,044-1234567
Onni Opiskelija,Ylioppilaskylä 1 A 1,044-1234567
Jari-Matti Meikäläinen,Yliopistonkatu 666, 0700-123123
......@@ -9,15 +9,25 @@ import java.util.Scanner;
public class Osoitekirja {
//HUom! Tss kannattaisi ehk kytt listaa, jotta uusia rivej on helpompi list.
//HUom! Tässä kannattaisi ehkä käyttää listaa, jotta uusia rivejä on helpompi lisätä.
static String[][] osoitteet;
public static void main(String[] args) {
try { //yritetn tehd jotain
/*
* Try-catch esitellään viimeisellä (huomisella) luennolla.
* Try-catch-kontrollirakenteen idea on siis yrittää tehdä jotakin, joka
* saattaa heittää poikkeuksen. Jos poikkeus heitetään yrityksen
* aikana, otetaan se kiinni ja reagoidaan
* tilanteeseen, jotta ohjelman suoritus voi
* jatkua normaalisti.
*/
try { //yritetään tehdä jotain
lueOsoitteet();
} catch (IOException e) { //tapahtui virhe, joka otetaan "kiinni"
//mit tehdn kun virhe tapahtui:
System.out.println("Osoitetiedostoa ei lytynyt!");
//mitä tehdään kun virhe tapahtui:
System.out.println("Osoitetiedostoa ei löytynyt!");
osoitteet=new String[0][3];
e.printStackTrace();
}
......@@ -26,18 +36,19 @@ public class Osoitekirja {
int valinta=-1;
do {
tulostaOhje();
//TODO: parseInt try-catchiin?
valinta = Integer.parseInt(s.nextLine());
switch (valinta) {
case 1:
tulostaOsoitteet();
break;
case 2:
//TODO kaikki tulostaOhje -metodissa listatut vaihtoehdot
default:
break;
}
}while(valinta!=5);
}while(valinta!=4);
tallennaOsoitteet();
System.out.println("Osoitteet tallennettu, poistutaan.");
s.close();
......@@ -46,9 +57,9 @@ public class Osoitekirja {
public static void lueOsoitteet() throws IOException {
//TODO: pitäisikö tämä saada käyttäjältä?
File f = new File("osoitteet.csv");
System.out.println(f.getAbsolutePath());
// Path p = Paths.get(); // saadaan suoraa polku joka annetaan parametriksi readAllLines -metodille
List<String> rivit = Files.readAllLines(f.toPath());
osoitteet = new String[rivit.size()][3];
......@@ -60,17 +71,16 @@ public class Osoitekirja {
}
public static void muokkaaOsoitetta() {
}
/**
*Luetaan käyttäjältä uusi osoite, joka lisätään osoitekirjaan
* TODO: parametrit?
*/
public static String[] lueUusiOsoite() {
return null;
}
/**
* Metodi tallentaa osoitekirjan, jotta ohjelman suorituksen aikana listyt uudet tiedot ovat kytss mys ohjelman seuraavalla suorituskerralla
* Metodi tallentaa osoitekirjan, jotta ohjelman suorituksen aikana lisätyt uudet tiedot ovat käytässä myös ohjelman seuraavalla suorituskerralla
*/
public static void tallennaOsoitteet() {
......@@ -86,12 +96,11 @@ public class Osoitekirja {
}
private static void tulostaOhje() {
System.out.println("Syt toiminto:");
System.out.println("Syötä toiminto:");
System.out.println("1. Tulosta osoitekirja");
System.out.println("2. Lis osoite");
System.out.println("2. Lisää osoite");
System.out.println("3. poista osoite");
System.out.println("4. muokkaa osoitetta");
System.out.println("5. tallenna ja lopeta");
System.out.println("4. tallenna ja lopeta");
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment