Your SlideShare is downloading. ×
Java осень 2012 лекция 6
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Java осень 2012 лекция 6

98
views

Published on

Published in: Technology, Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
98
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Лекция 6. «I/O»
  • 2. Как получить случайное число? Как получить псевдослучайное число? Random rnd = new Random(); rnd.nextInt(100); – вернет случайное число от 0 до 100 При каждом запуске последовательность будет новой Random rnd = new Random(1L); rnd.nextInt(100); – вернет случайное число от 0 до 100 При каждом запуске последовательность будет прежней Math.random(); – вернет случайное число типа double от 0 до 1 При каждом запуске последовательность будет новой
  • 3. public class Context { private Map<Class<?>, Object> context = new HashMap<Class<?>, Object>(); public void add(Class<?> clazz, Object object){ if(!object.getClass().equals(clazz)){ //ERROR } if(context.containsKey(clazz)){ //ERROR } context.put(clazz, object); } public Object get(Class<?> clazz){ return context.get(clazz); } }
  • 4. public interface MyEventListener { public void handle(EventObject event); } public class MyEventListenerImpl implements MyEventListener { //code public void handle(EventObject event){ //process event } }
  • 5. public class MyEventSource { private List<MyEventListener> listeners = Collections.synchronizedList(new ArrayList<MyEventListener>()); public void addListener(MyEventListener listener){ listeners.add(listener); } public void removeListener(MyEventListener listener){ listeners.remove(listener); } public void fireEvent(){ EventObject event = new EventObject(this); for(MyEventListener listner : listeners){ listner.handle(event); } } }
  • 6. class HelloWorld extends AbstractHandler – из примера jetty public void handle(...) это callback
  • 7. public class TimeHelper { public static long getTimeInMs(){ Date date = new Date(); return date.getTime(); //return System.currentTimeMillis(); } public static int getPOSIX(){ Date date = new Date(); int millisInSecond = 1000; return (int)(date.getTime() / millisInSecond); } public static String getUserDateFull(Locale locale){ Date date = new Date(); DateFormat dateFormatter = DateFormat. getDateInstance(DateFormat.FULL, locale); return dateFormatter.format(date); } }
  • 8. int timeMs = 10000; TimeService.instance().start(); TimeService.instance().sheduleTask(new TimerTask(){ public void run() { System.out.append("Timer run!n"); TimeService.instance().stop(); } }, timeMs);
  • 9. public abstract class InputStream
  • 10. public class FilterInputStream extends InputStream
  • 11. public class SimpleFileReader { public static void main(String args[]) throws IOException { FileReader fr = new FileReader("SimpleFileReader.java"); BufferedReader br = new BufferedReader(fr); String currentLine; while((currentLine = br.readLine()) != null) { System.out.println(currentLine); } fr.close(); } }
  • 12. public class CustomFileReader { public static void main(String args[]) throws IOException { FileInputStream fstream = new FileInputStream("textfile.txt"); DataInputStream in = new DataInputStream(fstream); InputStreamReader isr = new InputStreamReader(in, "UTF-16"); BufferedReader br = new BufferedReader(isr); String strLine; while ((strLine = br.readLine()) != null) { System.out.println (strLine); } br.close(); } }
  • 13. BufferedReader br = null; try{ //code br = new BufferedReader(isr); //code } catch (Exception e){ System.err.println("Error: " + e.getMessage()); } finally{ if(br != null){ try { br.close(); } catch (IOException e) { System.err.println("Error: " + e.getMessage()); } } }
  • 14. public interface VFS { boolean isExist(String path); boolean isDirectory(String path); String getAbsolutePath(String file); byte[] getBytes(String file); String getUFT8Text(String file); Iterator<String> getIterator(String startDir); } public class VFSImpl implements VFS { private String root; public VFSImpl(String root){ this.root = root; }
  • 15. private class FileIterator implements Iterator<String>{ private Queue<File> files = new LinkedList<File>(); public FileIterator(String path){ files.add(new File(root + path)); } public boolean hasNext() { return !files.isEmpty(); } public String next() { File file = files.peek(); if(file.isDirectory()){ for(File subFile : file.listFiles()){ files.add(subFile); } } return files.poll().getAbsolutePath(); } public void remove() { } }